{
 "metadata": {
  "name": "",
  "signature": "sha256:a082fc807336303e77a8e6c02f11f8c32fbaf99a81685da95a5b59cf3c38ddb6"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "% load_ext autoreload\n",
      "% autoreload 2\n",
      "% matplotlib inline\n",
      "% load_ext cythonmagic\n",
      "% config InlineBackend.figure_format = 'svg'\n",
      "import matplotlib.pyplot as plt\n",
      "import numpy as np, matplotlib\n",
      "from cython_lstm.network import Network\n",
      "from cython_lstm.neuron  import LogisticNeuron, TanhNeuron, SoftmaxNeuron\n",
      "from cython_lstm.layers  import LoopLayer, SliceLayer, ActivationLayer, LinearLayer\n",
      "from cython_lstm.trainer import Trainer\n",
      "from cython_lstm.error   import MSE, CategoricalCrossEntropy, BinaryCrossEntropy\n",
      "from cython_lstm.dataset import create_xor_dataset, create_digit_dataset\n",
      "import cython_lstm.network_viewer"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def test_net():\n",
      "    # create a test dataset\n",
      "    xor_dataset, xor_labels = create_xor_dataset()\n",
      "    # create a small network:\n",
      "\n",
      "    net = Network(metric= BinaryCrossEntropy)\n",
      "    print(\"Initialization OK\")\n",
      "    first_layer       = LinearLayer(xor_dataset.shape[1], 6)\n",
      "    activation_layer  = ActivationLayer(LogisticNeuron)\n",
      "    first_layer.connect_to(activation_layer)\n",
      "\n",
      "    second_layer      = LinearLayer(6,  xor_labels.shape[1])\n",
      "    activation_layer.connect_to(second_layer)\n",
      "\n",
      "    second_activation_layer = ActivationLayer(LogisticNeuron)\n",
      "    second_layer.connect_to(second_activation_layer)\n",
      "\n",
      "    net.add_layer(first_layer, input=True)\n",
      "    net.add_layer(activation_layer)\n",
      "    net.add_layer(second_layer)\n",
      "    net.add_layer(activation_layer)\n",
      "    net.add_layer(second_layer)\n",
      "    net.add_layer(second_activation_layer, output=True)\n",
      "\n",
      "    print(\"Construction OK\")\n",
      "\n",
      "    net.clear()\n",
      "    print(\"Clearing OK\")\n",
      "    net.activate(xor_dataset)\n",
      "    print(\"Activation OK\")\n",
      "    net.backpropagate(xor_labels)\n",
      "    print(\"Backpropagation OK\")\n",
      "\n",
      "    for gparam, param in zip(net.get_gradients(), net.get_parameters()):\n",
      "        assert(gparam.shape == param.shape), \"Weight updates are not the same size\"\n",
      "\n",
      "    print(\"Updates and parameters shapes OK\")\n",
      "\n",
      "    trainer = Trainer(net, 0.3)\n",
      "    print(\"Trainer OK\")\n",
      "    epochs = 2000\n",
      "\n",
      "    for epoch in range(epochs):\n",
      "        er = trainer.train(xor_dataset, xor_labels)\n",
      "        if epoch > 0 and epoch % 250 == 0:\n",
      "            print(\"epoch %d, Error %.2f\" % (epoch, er))\n",
      "\n",
      "    print(\"Training OK\")\n",
      "\n",
      "    net.clear()\n",
      "    np.set_printoptions(precision=2)\n",
      "    passed_predictions = []\n",
      "    for data, prediction, label in zip(xor_dataset, net.activate(xor_dataset), xor_labels):\n",
      "        passed_predictions.append(np.allclose(prediction.round(), label))\n",
      "        print(\"%r => %r : %r\" % (data.astype(np.float64), np.around(prediction.astype(np.float64), decimals=2), passed_predictions[-1]))\n",
      "    if all(passed_predictions):\n",
      "        print(\"Learning OK\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "test_net()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Initialization OK\n",
        "Construction OK\n",
        "Clearing OK\n",
        "Activation OK\n",
        "Backpropagation OK\n",
        "Updates and parameters shapes OK\n",
        "Trainer OK\n",
        "epoch 250, Error 5.53"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 500, Error 0.93"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 750, Error 0.39"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1000, Error 0.28"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1250, Error 0.22"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1500, Error 0.19"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1750, Error 0.17"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "Training OK"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "array([ 0.,  0.]) => array([ 0.02,  0.98]) : True\n",
        "array([ 0.,  1.]) => array([ 0.98,  0.02]) : True\n",
        "array([ 1.,  0.]) => array([ 0.98,  0.02]) : True\n",
        "array([ 1.,  1.]) => array([ 0.02,  0.98]) : True\n",
        "Learning OK\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def test_softmax_net():\n",
      "    # create a simple binary to decimal converter\n",
      "    digit_dataset, digit_labels = create_digit_dataset()\n",
      "    \n",
      "    # create a small network:\n",
      "\n",
      "    net = Network(metric = CategoricalCrossEntropy)\n",
      "    print(\"Initialization OK\")\n",
      "    first_layer = LinearLayer(digit_dataset.shape[1], 3)\n",
      "    first_layer_activation = ActivationLayer(LogisticNeuron)\n",
      "    first_layer.connect_to(first_layer_activation)\n",
      "    \n",
      "    second_layer = LinearLayer(3,  11) # 0, 1, ..., 9, 10\n",
      "    first_layer_activation.connect_to(second_layer)\n",
      "    \n",
      "    second_layer_activation = ActivationLayer(SoftmaxNeuron)\n",
      "    second_layer.connect_to(second_layer_activation)\n",
      "    \n",
      "    net.add_layer(first_layer, input=True)\n",
      "    net.add_layer(first_layer_activation)\n",
      "    net.add_layer(second_layer)\n",
      "    net.add_layer(second_layer_activation, output=True)\n",
      "    \n",
      "    print(\"Construction OK\")\n",
      "    net.clear()\n",
      "    print(\"Clearing OK\")\n",
      "    net.activate(digit_dataset)\n",
      "    print(\"Activation OK\")\n",
      "    net.backpropagate(digit_labels)\n",
      "    print(\"Backpropagation OK\")\n",
      "\n",
      "    for gparam, param in zip(net.get_gradients(), net.get_parameters()):\n",
      "        assert(gparam.shape == param.shape), \"Weight updates are not the same size\"\n",
      "        \n",
      "    print(\"Updates and parameters shapes OK\")\n",
      "    \n",
      "    trainer = Trainer(net, 0.01)\n",
      "    print(\"Trainer OK\")\n",
      "    epochs = 2000\n",
      "    \n",
      "    for epoch in range(epochs):\n",
      "        er = trainer.train(digit_dataset, digit_labels)\n",
      "        if epoch % 250 == 0:\n",
      "            print(\"epoch %d, Error %.2f\" % (epoch, er))\n",
      "        \n",
      "    print(\"Training OK\")\n",
      "    \n",
      "    net.clear()\n",
      "    np.set_printoptions(precision=2)\n",
      "    passed_predictions = []\n",
      "    plt.matshow(net.activate(digit_dataset), cmap = matplotlib.cm.Blues)\n",
      "    plt.xticks(np.arange(0,11), [str(w) for w in list(np.arange(0,11))])\n",
      "    plt.yticks(np.arange(0,11), [str(datum) for datum in digit_dataset])\n",
      "    plt.title(\"Prediction distribution for decimals from binary codes\")\n",
      "    \n",
      "    for data, prediction, label in zip(digit_dataset, net.activate(digit_dataset), digit_labels):\n",
      "        passed_predictions.append(prediction.argmax() ==  label)\n",
      "        print(\"%r => %r : %r\" % (data.astype(np.float64), prediction.argmax(), passed_predictions[-1]))\n",
      "    if all(passed_predictions):\n",
      "        print(\"Learning OK\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 29
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "test_softmax_net()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Initialization OK\n",
        "Construction OK\n",
        "Clearing OK\n",
        "Activation OK\n",
        "Backpropagation OK\n",
        "Updates and parameters shapes OK\n",
        "Trainer OK\n",
        "epoch 0, Error 27.20\n",
        "epoch 250, Error 0.63"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 500, Error 0.28"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 750, Error 0.18"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1000, Error 0.13"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1250, Error 0.10"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1500, Error 0.08"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1750, Error 0.07"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "Training OK"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "array([ 0.,  0.,  0.,  0.]) => 0 : True"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "array([ 0.,  0.,  0.,  1.]) => 1 : True\n",
        "array([ 0.,  0.,  1.,  0.]) => 2 : True\n",
        "array([ 0.,  0.,  1.,  1.]) => 3 : True\n",
        "array([ 0.,  1.,  0.,  0.]) => 4 : True\n",
        "array([ 0.,  1.,  0.,  1.]) => 5 : True\n",
        "array([ 0.,  1.,  1.,  0.]) => 6 : True\n",
        "array([ 0.,  1.,  1.,  1.]) => 7 : True\n",
        "array([ 1.,  0.,  0.,  0.]) => 8 : True\n",
        "array([ 1.,  0.,  0.,  1.]) => 9 : True\n",
        "array([ 1.,  0.,  1.,  0.]) => 10 : True\n",
        "Learning OK\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "svg": [
        "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
        "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
        "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
        "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
        "<svg height=\"262pt\" version=\"1.1\" viewBox=\"0 0 358 262\" width=\"358pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
        " <defs>\n",
        "  <style type=\"text/css\">\n",
        "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
        "  </style>\n",
        " </defs>\n",
        " <g id=\"figure_1\">\n",
        "  <g id=\"patch_1\">\n",
        "   <path d=\"\n",
        "M0 262.878\n",
        "L358.058 262.878\n",
        "L358.058 0\n",
        "L0 0\n",
        "z\n",
        "\" style=\"fill:none;\"/>\n",
        "  </g>\n",
        "  <g id=\"axes_1\">\n",
        "   <g id=\"patch_2\">\n",
        "    <path d=\"\n",
        "M78.5531 255.678\n",
        "L301.753 255.678\n",
        "L301.753 32.4781\n",
        "L78.5531 32.4781\n",
        "z\n",
        "\" style=\"fill:#ffffff;\"/>\n",
        "   </g>\n",
        "   <g clip-path=\"url(#pef37260a9e)\">\n",
        "    <image height=\"224.0\" id=\"imagef9c5b16908\" width=\"224.0\" x=\"78.553125\" xlink:href=\"data:image/png;base64,\n",
        "iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAYAAAAaLWrhAAAABHNCSVQICAgIfAhkiAAAAxlJREFUeJzt3LFNHFEUhtFZIqfjUpBYmtq1a0HQFLiYCQkcrGsAXesbmHMKuHrJp5f9px/3v27LoO31afIcfGt39QPgyAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAULo9P73NroJs56vk+eWZVmW7e15/CbsgR8QQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAiNjzL9D+vj79F72+vT6D2O4zacix8QQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACH0JTZhpnc4fp6vo/e2Py+j9zgOPyCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQuhLbMLs3fpwGb9pZ+YY/IAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQsgo005NDz0ZedonPyCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQsgmzEFMb8wsi52ZCX5ACAkQQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACFklIlPmx56OuLIkx8QQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACFkE4bdOOLGjB8QQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACFkE4Zvaz1fx29ub8+j9/yAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAULIKBN8wPpwGb3nB4SQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACP0DlOdOtWUPGxYAAAAASUVORK5CYII=\" y=\"31.678125\"/>\n",
        "   </g>\n",
        "   <g id=\"patch_3\">\n",
        "    <path d=\"\n",
        "M78.5531 32.4781\n",
        "L301.753 32.4781\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;\"/>\n",
        "   </g>\n",
        "   <g id=\"patch_4\">\n",
        "    <path d=\"\n",
        "M78.5531 255.678\n",
        "L78.5531 32.4781\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;\"/>\n",
        "   </g>\n",
        "   <g id=\"patch_5\">\n",
        "    <path d=\"\n",
        "M78.5531 255.678\n",
        "L301.753 255.678\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;\"/>\n",
        "   </g>\n",
        "   <g id=\"patch_6\">\n",
        "    <path d=\"\n",
        "M301.753 255.678\n",
        "L301.753 32.4781\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;\"/>\n",
        "   </g>\n",
        "   <g id=\"matplotlib.axis_1\">\n",
        "    <g id=\"xtick_1\">\n",
        "     <g id=\"line2d_1\">\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M0 0\n",
        "L0 -4\" id=\"mc7db9fdffb\" style=\"stroke:#000000;stroke-width:0.5;\"/>\n",
        "      </defs>\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"88.6985795455\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_2\">\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M0 0\n",
        "L0 4\" id=\"m5a7d422ac3\" style=\"stroke:#000000;stroke-width:0.5;\"/>\n",
        "      </defs>\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"88.6985795455\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_1\">\n",
        "      <!-- 0 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M31.7812 66.4062\n",
        "Q24.1719 66.4062 20.3281 58.9062\n",
        "Q16.5 51.4219 16.5 36.375\n",
        "Q16.5 21.3906 20.3281 13.8906\n",
        "Q24.1719 6.39062 31.7812 6.39062\n",
        "Q39.4531 6.39062 43.2812 13.8906\n",
        "Q47.125 21.3906 47.125 36.375\n",
        "Q47.125 51.4219 43.2812 58.9062\n",
        "Q39.4531 66.4062 31.7812 66.4062\n",
        "M31.7812 74.2188\n",
        "Q44.0469 74.2188 50.5156 64.5156\n",
        "Q56.9844 54.8281 56.9844 36.375\n",
        "Q56.9844 17.9688 50.5156 8.26562\n",
        "Q44.0469 -1.42188 31.7812 -1.42188\n",
        "Q19.5312 -1.42188 13.0625 8.26562\n",
        "Q6.59375 17.9688 6.59375 36.375\n",
        "Q6.59375 54.8281 13.0625 64.5156\n",
        "Q19.5312 74.2188 31.7812 74.2188\" id=\"BitstreamVeraSans-Roman-30\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(86.1790482955 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_2\">\n",
        "     <g id=\"line2d_3\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"108.989488636\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_4\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"108.989488636\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_2\">\n",
        "      <!-- 1 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M12.4062 8.29688\n",
        "L28.5156 8.29688\n",
        "L28.5156 63.9219\n",
        "L10.9844 60.4062\n",
        "L10.9844 69.3906\n",
        "L28.4219 72.9062\n",
        "L38.2812 72.9062\n",
        "L38.2812 8.29688\n",
        "L54.3906 8.29688\n",
        "L54.3906 0\n",
        "L12.4062 0\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-31\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(106.819176136 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_3\">\n",
        "     <g id=\"line2d_5\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"129.280397727\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_6\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"129.280397727\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_3\">\n",
        "      <!-- 2 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M19.1875 8.29688\n",
        "L53.6094 8.29688\n",
        "L53.6094 0\n",
        "L7.32812 0\n",
        "L7.32812 8.29688\n",
        "Q12.9375 14.1094 22.625 23.8906\n",
        "Q32.3281 33.6875 34.8125 36.5312\n",
        "Q39.5469 41.8438 41.4219 45.5312\n",
        "Q43.3125 49.2188 43.3125 52.7812\n",
        "Q43.3125 58.5938 39.2344 62.25\n",
        "Q35.1562 65.9219 28.6094 65.9219\n",
        "Q23.9688 65.9219 18.8125 64.3125\n",
        "Q13.6719 62.7031 7.8125 59.4219\n",
        "L7.8125 69.3906\n",
        "Q13.7656 71.7812 18.9375 73\n",
        "Q24.125 74.2188 28.4219 74.2188\n",
        "Q39.75 74.2188 46.4844 68.5469\n",
        "Q53.2188 62.8906 53.2188 53.4219\n",
        "Q53.2188 48.9219 51.5312 44.8906\n",
        "Q49.8594 40.875 45.4062 35.4062\n",
        "Q44.1875 33.9844 37.6406 27.2188\n",
        "Q31.1094 20.4531 19.1875 8.29688\" id=\"BitstreamVeraSans-Roman-32\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(126.966335227 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-32\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_4\">\n",
        "     <g id=\"line2d_7\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"149.571306818\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_8\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"149.571306818\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_4\">\n",
        "      <!-- 3 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M40.5781 39.3125\n",
        "Q47.6562 37.7969 51.625 33\n",
        "Q55.6094 28.2188 55.6094 21.1875\n",
        "Q55.6094 10.4062 48.1875 4.48438\n",
        "Q40.7656 -1.42188 27.0938 -1.42188\n",
        "Q22.5156 -1.42188 17.6562 -0.515625\n",
        "Q12.7969 0.390625 7.625 2.20312\n",
        "L7.625 11.7188\n",
        "Q11.7188 9.32812 16.5938 8.10938\n",
        "Q21.4844 6.89062 26.8125 6.89062\n",
        "Q36.0781 6.89062 40.9375 10.5469\n",
        "Q45.7969 14.2031 45.7969 21.1875\n",
        "Q45.7969 27.6406 41.2812 31.2656\n",
        "Q36.7656 34.9062 28.7188 34.9062\n",
        "L20.2188 34.9062\n",
        "L20.2188 43.0156\n",
        "L29.1094 43.0156\n",
        "Q36.375 43.0156 40.2344 45.9219\n",
        "Q44.0938 48.8281 44.0938 54.2969\n",
        "Q44.0938 59.9062 40.1094 62.9062\n",
        "Q36.1406 65.9219 28.7188 65.9219\n",
        "Q24.6562 65.9219 20.0156 65.0312\n",
        "Q15.375 64.1562 9.8125 62.3125\n",
        "L9.8125 71.0938\n",
        "Q15.4375 72.6562 20.3438 73.4375\n",
        "Q25.25 74.2188 29.5938 74.2188\n",
        "Q40.8281 74.2188 47.3594 69.1094\n",
        "Q53.9062 64.0156 53.9062 55.3281\n",
        "Q53.9062 49.2656 50.4375 45.0938\n",
        "Q46.9688 40.9219 40.5781 39.3125\" id=\"BitstreamVeraSans-Roman-33\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(147.172088068 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-33\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_5\">\n",
        "     <g id=\"line2d_9\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"169.862215909\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_10\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"169.862215909\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_5\">\n",
        "      <!-- 4 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M37.7969 64.3125\n",
        "L12.8906 25.3906\n",
        "L37.7969 25.3906\n",
        "z\n",
        "\n",
        "M35.2031 72.9062\n",
        "L47.6094 72.9062\n",
        "L47.6094 25.3906\n",
        "L58.0156 25.3906\n",
        "L58.0156 17.1875\n",
        "L47.6094 17.1875\n",
        "L47.6094 0\n",
        "L37.7969 0\n",
        "L37.7969 17.1875\n",
        "L4.89062 17.1875\n",
        "L4.89062 26.7031\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-34\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(167.205965909 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-34\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_6\">\n",
        "     <g id=\"line2d_11\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"190.153125\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_12\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"190.153125\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_6\">\n",
        "      <!-- 5 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M10.7969 72.9062\n",
        "L49.5156 72.9062\n",
        "L49.5156 64.5938\n",
        "L19.8281 64.5938\n",
        "L19.8281 46.7344\n",
        "Q21.9688 47.4688 24.1094 47.8281\n",
        "Q26.2656 48.1875 28.4219 48.1875\n",
        "Q40.625 48.1875 47.75 41.5\n",
        "Q54.8906 34.8125 54.8906 23.3906\n",
        "Q54.8906 11.625 47.5625 5.09375\n",
        "Q40.2344 -1.42188 26.9062 -1.42188\n",
        "Q22.3125 -1.42188 17.5469 -0.640625\n",
        "Q12.7969 0.140625 7.71875 1.70312\n",
        "L7.71875 11.625\n",
        "Q12.1094 9.23438 16.7969 8.0625\n",
        "Q21.4844 6.89062 26.7031 6.89062\n",
        "Q35.1562 6.89062 40.0781 11.3281\n",
        "Q45.0156 15.7656 45.0156 23.3906\n",
        "Q45.0156 31 40.0781 35.4375\n",
        "Q35.1562 39.8906 26.7031 39.8906\n",
        "Q22.75 39.8906 18.8125 39.0156\n",
        "Q14.8906 38.1406 10.7969 36.2812\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-35\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(187.79453125 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-35\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_7\">\n",
        "     <g id=\"line2d_13\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"210.444034091\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_14\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"210.444034091\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_7\">\n",
        "      <!-- 6 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M33.0156 40.375\n",
        "Q26.375 40.375 22.4844 35.8281\n",
        "Q18.6094 31.2969 18.6094 23.3906\n",
        "Q18.6094 15.5312 22.4844 10.9531\n",
        "Q26.375 6.39062 33.0156 6.39062\n",
        "Q39.6562 6.39062 43.5312 10.9531\n",
        "Q47.4062 15.5312 47.4062 23.3906\n",
        "Q47.4062 31.2969 43.5312 35.8281\n",
        "Q39.6562 40.375 33.0156 40.375\n",
        "M52.5938 71.2969\n",
        "L52.5938 62.3125\n",
        "Q48.875 64.0625 45.0938 64.9844\n",
        "Q41.3125 65.9219 37.5938 65.9219\n",
        "Q27.8281 65.9219 22.6719 59.3281\n",
        "Q17.5312 52.7344 16.7969 39.4062\n",
        "Q19.6719 43.6562 24.0156 45.9219\n",
        "Q28.375 48.1875 33.5938 48.1875\n",
        "Q44.5781 48.1875 50.9531 41.5156\n",
        "Q57.3281 34.8594 57.3281 23.3906\n",
        "Q57.3281 12.1562 50.6875 5.35938\n",
        "Q44.0469 -1.42188 33.0156 -1.42188\n",
        "Q20.3594 -1.42188 13.6719 8.26562\n",
        "Q6.98438 17.9688 6.98438 36.375\n",
        "Q6.98438 53.6562 15.1875 63.9375\n",
        "Q23.3906 74.2188 37.2031 74.2188\n",
        "Q40.9219 74.2188 44.7031 73.4844\n",
        "Q48.4844 72.75 52.5938 71.2969\" id=\"BitstreamVeraSans-Roman-36\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(207.926846591 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-36\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_8\">\n",
        "     <g id=\"line2d_15\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"230.734943182\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_16\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"230.734943182\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_8\">\n",
        "      <!-- 7 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M8.20312 72.9062\n",
        "L55.0781 72.9062\n",
        "L55.0781 68.7031\n",
        "L28.6094 0\n",
        "L18.3125 0\n",
        "L43.2188 64.5938\n",
        "L8.20312 64.5938\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-37\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(228.391193182 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-37\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_9\">\n",
        "     <g id=\"line2d_17\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"251.025852273\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_18\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"251.025852273\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_9\">\n",
        "      <!-- 8 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M31.7812 34.625\n",
        "Q24.75 34.625 20.7188 30.8594\n",
        "Q16.7031 27.0938 16.7031 20.5156\n",
        "Q16.7031 13.9219 20.7188 10.1562\n",
        "Q24.75 6.39062 31.7812 6.39062\n",
        "Q38.8125 6.39062 42.8594 10.1719\n",
        "Q46.9219 13.9688 46.9219 20.5156\n",
        "Q46.9219 27.0938 42.8906 30.8594\n",
        "Q38.875 34.625 31.7812 34.625\n",
        "M21.9219 38.8125\n",
        "Q15.5781 40.375 12.0312 44.7188\n",
        "Q8.5 49.0781 8.5 55.3281\n",
        "Q8.5 64.0625 14.7188 69.1406\n",
        "Q20.9531 74.2188 31.7812 74.2188\n",
        "Q42.6719 74.2188 48.875 69.1406\n",
        "Q55.0781 64.0625 55.0781 55.3281\n",
        "Q55.0781 49.0781 51.5312 44.7188\n",
        "Q48 40.375 41.7031 38.8125\n",
        "Q48.8281 37.1562 52.7969 32.3125\n",
        "Q56.7812 27.4844 56.7812 20.5156\n",
        "Q56.7812 9.90625 50.3125 4.23438\n",
        "Q43.8438 -1.42188 31.7812 -1.42188\n",
        "Q19.7344 -1.42188 13.25 4.23438\n",
        "Q6.78125 9.90625 6.78125 20.5156\n",
        "Q6.78125 27.4844 10.7812 32.3125\n",
        "Q14.7969 37.1562 21.9219 38.8125\n",
        "M18.3125 54.3906\n",
        "Q18.3125 48.7344 21.8438 45.5625\n",
        "Q25.3906 42.3906 31.7812 42.3906\n",
        "Q38.1406 42.3906 41.7188 45.5625\n",
        "Q45.3125 48.7344 45.3125 54.3906\n",
        "Q45.3125 60.0625 41.7188 63.2344\n",
        "Q38.1406 66.4062 31.7812 66.4062\n",
        "Q25.3906 66.4062 21.8438 63.2344\n",
        "Q18.3125 60.0625 18.3125 54.3906\" id=\"BitstreamVeraSans-Roman-38\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(248.525852273 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-38\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_10\">\n",
        "     <g id=\"line2d_19\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"271.316761364\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_20\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"271.316761364\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_10\">\n",
        "      <!-- 9 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M10.9844 1.51562\n",
        "L10.9844 10.5\n",
        "Q14.7031 8.73438 18.5 7.8125\n",
        "Q22.3125 6.89062 25.9844 6.89062\n",
        "Q35.75 6.89062 40.8906 13.4531\n",
        "Q46.0469 20.0156 46.7812 33.4062\n",
        "Q43.9531 29.2031 39.5938 26.9531\n",
        "Q35.25 24.7031 29.9844 24.7031\n",
        "Q19.0469 24.7031 12.6719 31.3125\n",
        "Q6.29688 37.9375 6.29688 49.4219\n",
        "Q6.29688 60.6406 12.9375 67.4219\n",
        "Q19.5781 74.2188 30.6094 74.2188\n",
        "Q43.2656 74.2188 49.9219 64.5156\n",
        "Q56.5938 54.8281 56.5938 36.375\n",
        "Q56.5938 19.1406 48.4062 8.85938\n",
        "Q40.2344 -1.42188 26.4219 -1.42188\n",
        "Q22.7031 -1.42188 18.8906 -0.6875\n",
        "Q15.0938 0.046875 10.9844 1.51562\n",
        "M30.6094 32.4219\n",
        "Q37.25 32.4219 41.125 36.9531\n",
        "Q45.0156 41.5 45.0156 49.4219\n",
        "Q45.0156 57.2812 41.125 61.8438\n",
        "Q37.25 66.4062 30.6094 66.4062\n",
        "Q23.9688 66.4062 20.0938 61.8438\n",
        "Q16.2188 57.2812 16.2188 49.4219\n",
        "Q16.2188 41.5 20.0938 36.9531\n",
        "Q23.9688 32.4219 30.6094 32.4219\" id=\"BitstreamVeraSans-Roman-39\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(268.801917614 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-39\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_11\">\n",
        "     <g id=\"line2d_21\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"291.607670455\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_22\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"291.607670455\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_11\">\n",
        "      <!-- 10 -->\n",
        "      <g transform=\"translate(286.126420455 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"63.623046875\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"matplotlib.axis_2\">\n",
        "    <g id=\"ytick_1\">\n",
        "     <g id=\"line2d_23\">\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M0 0\n",
        "L4 0\" id=\"md7965d1ba0\" style=\"stroke:#000000;stroke-width:0.5;\"/>\n",
        "      </defs>\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"42.6235795455\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_24\">\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M0 0\n",
        "L-4 0\" id=\"md9a1c1a7cd\" style=\"stroke:#000000;stroke-width:0.5;\"/>\n",
        "      </defs>\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"42.6235795455\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_12\">\n",
        "      <!-- [ 0.  0.  0.  0.] -->\n",
        "      <defs>\n",
        "       <path id=\"BitstreamVeraSans-Roman-20\"/>\n",
        "       <path d=\"\n",
        "M10.6875 12.4062\n",
        "L21 12.4062\n",
        "L21 0\n",
        "L10.6875 0\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-2e\"/>\n",
        "       <path d=\"\n",
        "M30.4219 75.9844\n",
        "L30.4219 -13.1875\n",
        "L9.71875 -13.1875\n",
        "L9.71875 -6.20312\n",
        "L21.3906 -6.20312\n",
        "L21.3906 69\n",
        "L9.71875 69\n",
        "L9.71875 75.9844\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-5d\"/>\n",
        "       <path d=\"\n",
        "M8.59375 75.9844\n",
        "L29.2969 75.9844\n",
        "L29.2969 69\n",
        "L17.5781 69\n",
        "L17.5781 -6.20312\n",
        "L29.2969 -6.20312\n",
        "L29.2969 -13.1875\n",
        "L8.59375 -13.1875\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-5b\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(7.2 45.3829545455)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_2\">\n",
        "     <g id=\"line2d_25\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"62.9144886364\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_26\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"62.9144886364\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_13\">\n",
        "      <!-- [ 0.  0.  0.  1.] -->\n",
        "      <g transform=\"translate(7.2 65.6738636364)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_3\">\n",
        "     <g id=\"line2d_27\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"83.2053977273\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_28\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"83.2053977273\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_14\">\n",
        "      <!-- [ 0.  0.  1.  0.] -->\n",
        "      <g transform=\"translate(7.2 85.9647727273)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_4\">\n",
        "     <g id=\"line2d_29\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"103.496306818\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_30\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"103.496306818\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_15\">\n",
        "      <!-- [ 0.  0.  1.  1.] -->\n",
        "      <g transform=\"translate(7.2 106.255681818)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_5\">\n",
        "     <g id=\"line2d_31\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"123.787215909\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_32\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"123.787215909\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_16\">\n",
        "      <!-- [ 0.  1.  0.  0.] -->\n",
        "      <g transform=\"translate(7.2 126.546590909)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_6\">\n",
        "     <g id=\"line2d_33\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"144.078125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_34\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"144.078125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_17\">\n",
        "      <!-- [ 0.  1.  0.  1.] -->\n",
        "      <g transform=\"translate(7.2 146.8375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_7\">\n",
        "     <g id=\"line2d_35\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"164.369034091\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_36\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"164.369034091\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_18\">\n",
        "      <!-- [ 0.  1.  1.  0.] -->\n",
        "      <g transform=\"translate(7.2 167.128409091)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_8\">\n",
        "     <g id=\"line2d_37\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"184.659943182\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_38\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"184.659943182\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_19\">\n",
        "      <!-- [ 0.  1.  1.  1.] -->\n",
        "      <g transform=\"translate(7.2 187.419318182)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_9\">\n",
        "     <g id=\"line2d_39\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"204.950852273\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_40\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"204.950852273\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_20\">\n",
        "      <!-- [ 1.  0.  0.  0.] -->\n",
        "      <g transform=\"translate(7.2 207.710227273)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_10\">\n",
        "     <g id=\"line2d_41\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"225.241761364\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_42\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"225.241761364\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_21\">\n",
        "      <!-- [ 1.  0.  0.  1.] -->\n",
        "      <g transform=\"translate(7.2 228.001136364)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_11\">\n",
        "     <g id=\"line2d_43\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"245.532670455\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_44\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"245.532670455\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_22\">\n",
        "      <!-- [ 1.  0.  1.  0.] -->\n",
        "      <g transform=\"translate(7.2 248.292045455)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_23\">\n",
        "    <!-- Prediction distribution for decimals from binary codes -->\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M32.1719 -5.07812\n",
        "Q28.375 -14.8438 24.75 -17.8125\n",
        "Q21.1406 -20.7969 15.0938 -20.7969\n",
        "L7.90625 -20.7969\n",
        "L7.90625 -13.2812\n",
        "L13.1875 -13.2812\n",
        "Q16.8906 -13.2812 18.9375 -11.5156\n",
        "Q21 -9.76562 23.4844 -3.21875\n",
        "L25.0938 0.875\n",
        "L2.98438 54.6875\n",
        "L12.5 54.6875\n",
        "L29.5938 11.9219\n",
        "L46.6875 54.6875\n",
        "L56.2031 54.6875\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-79\"/>\n",
        "     <path d=\"\n",
        "M52 44.1875\n",
        "Q55.375 50.25 60.0625 53.125\n",
        "Q64.75 56 71.0938 56\n",
        "Q79.6406 56 84.2812 50.0156\n",
        "Q88.9219 44.0469 88.9219 33.0156\n",
        "L88.9219 0\n",
        "L79.8906 0\n",
        "L79.8906 32.7188\n",
        "Q79.8906 40.5781 77.0938 44.375\n",
        "Q74.3125 48.1875 68.6094 48.1875\n",
        "Q61.625 48.1875 57.5625 43.5469\n",
        "Q53.5156 38.9219 53.5156 30.9062\n",
        "L53.5156 0\n",
        "L44.4844 0\n",
        "L44.4844 32.7188\n",
        "Q44.4844 40.625 41.7031 44.4062\n",
        "Q38.9219 48.1875 33.1094 48.1875\n",
        "Q26.2188 48.1875 22.1562 43.5312\n",
        "Q18.1094 38.875 18.1094 30.9062\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 54.6875\n",
        "L18.1094 54.6875\n",
        "L18.1094 46.1875\n",
        "Q21.1875 51.2188 25.4844 53.6094\n",
        "Q29.7812 56 35.6875 56\n",
        "Q41.6562 56 45.8281 52.9688\n",
        "Q50 49.9531 52 44.1875\" id=\"BitstreamVeraSans-Roman-6d\"/>\n",
        "     <path d=\"\n",
        "M41.1094 46.2969\n",
        "Q39.5938 47.1719 37.8125 47.5781\n",
        "Q36.0312 48 33.8906 48\n",
        "Q26.2656 48 22.1875 43.0469\n",
        "Q18.1094 38.0938 18.1094 28.8125\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 54.6875\n",
        "L18.1094 54.6875\n",
        "L18.1094 46.1875\n",
        "Q20.9531 51.1719 25.4844 53.5781\n",
        "Q30.0312 56 36.5312 56\n",
        "Q37.4531 56 38.5781 55.875\n",
        "Q39.7031 55.7656 41.0625 55.5156\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-72\"/>\n",
        "     <path d=\"\n",
        "M34.2812 27.4844\n",
        "Q23.3906 27.4844 19.1875 25\n",
        "Q14.9844 22.5156 14.9844 16.5\n",
        "Q14.9844 11.7188 18.1406 8.90625\n",
        "Q21.2969 6.10938 26.7031 6.10938\n",
        "Q34.1875 6.10938 38.7031 11.4062\n",
        "Q43.2188 16.7031 43.2188 25.4844\n",
        "L43.2188 27.4844\n",
        "z\n",
        "\n",
        "M52.2031 31.2031\n",
        "L52.2031 0\n",
        "L43.2188 0\n",
        "L43.2188 8.29688\n",
        "Q40.1406 3.32812 35.5469 0.953125\n",
        "Q30.9531 -1.42188 24.3125 -1.42188\n",
        "Q15.9219 -1.42188 10.9531 3.29688\n",
        "Q6 8.01562 6 15.9219\n",
        "Q6 25.1406 12.1719 29.8281\n",
        "Q18.3594 34.5156 30.6094 34.5156\n",
        "L43.2188 34.5156\n",
        "L43.2188 35.4062\n",
        "Q43.2188 41.6094 39.1406 45\n",
        "Q35.0625 48.3906 27.6875 48.3906\n",
        "Q23 48.3906 18.5469 47.2656\n",
        "Q14.1094 46.1406 10.0156 43.8906\n",
        "L10.0156 52.2031\n",
        "Q14.9375 54.1094 19.5781 55.0469\n",
        "Q24.2188 56 28.6094 56\n",
        "Q40.4844 56 46.3438 49.8438\n",
        "Q52.2031 43.7031 52.2031 31.2031\" id=\"BitstreamVeraSans-Roman-61\"/>\n",
        "     <path d=\"\n",
        "M18.3125 70.2188\n",
        "L18.3125 54.6875\n",
        "L36.8125 54.6875\n",
        "L36.8125 47.7031\n",
        "L18.3125 47.7031\n",
        "L18.3125 18.0156\n",
        "Q18.3125 11.3281 20.1406 9.42188\n",
        "Q21.9688 7.51562 27.5938 7.51562\n",
        "L36.8125 7.51562\n",
        "L36.8125 0\n",
        "L27.5938 0\n",
        "Q17.1875 0 13.2344 3.875\n",
        "Q9.28125 7.76562 9.28125 18.0156\n",
        "L9.28125 47.7031\n",
        "L2.6875 47.7031\n",
        "L2.6875 54.6875\n",
        "L9.28125 54.6875\n",
        "L9.28125 70.2188\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-74\"/>\n",
        "     <path d=\"\n",
        "M44.2812 53.0781\n",
        "L44.2812 44.5781\n",
        "Q40.4844 46.5312 36.375 47.5\n",
        "Q32.2812 48.4844 27.875 48.4844\n",
        "Q21.1875 48.4844 17.8438 46.4375\n",
        "Q14.5 44.3906 14.5 40.2812\n",
        "Q14.5 37.1562 16.8906 35.375\n",
        "Q19.2812 33.5938 26.5156 31.9844\n",
        "L29.5938 31.2969\n",
        "Q39.1562 29.25 43.1875 25.5156\n",
        "Q47.2188 21.7812 47.2188 15.0938\n",
        "Q47.2188 7.46875 41.1875 3.01562\n",
        "Q35.1562 -1.42188 24.6094 -1.42188\n",
        "Q20.2188 -1.42188 15.4531 -0.5625\n",
        "Q10.6875 0.296875 5.42188 2\n",
        "L5.42188 11.2812\n",
        "Q10.4062 8.6875 15.2344 7.39062\n",
        "Q20.0625 6.10938 24.8125 6.10938\n",
        "Q31.1562 6.10938 34.5625 8.28125\n",
        "Q37.9844 10.4531 37.9844 14.4062\n",
        "Q37.9844 18.0625 35.5156 20.0156\n",
        "Q33.0625 21.9688 24.7031 23.7812\n",
        "L21.5781 24.5156\n",
        "Q13.2344 26.2656 9.51562 29.9062\n",
        "Q5.8125 33.5469 5.8125 39.8906\n",
        "Q5.8125 47.6094 11.2812 51.7969\n",
        "Q16.75 56 26.8125 56\n",
        "Q31.7812 56 36.1719 55.2656\n",
        "Q40.5781 54.5469 44.2812 53.0781\" id=\"BitstreamVeraSans-Roman-73\"/>\n",
        "     <path d=\"\n",
        "M37.1094 75.9844\n",
        "L37.1094 68.5\n",
        "L28.5156 68.5\n",
        "Q23.6875 68.5 21.7969 66.5469\n",
        "Q19.9219 64.5938 19.9219 59.5156\n",
        "L19.9219 54.6875\n",
        "L34.7188 54.6875\n",
        "L34.7188 47.7031\n",
        "L19.9219 47.7031\n",
        "L19.9219 0\n",
        "L10.8906 0\n",
        "L10.8906 47.7031\n",
        "L2.29688 47.7031\n",
        "L2.29688 54.6875\n",
        "L10.8906 54.6875\n",
        "L10.8906 58.5\n",
        "Q10.8906 67.625 15.1406 71.7969\n",
        "Q19.3906 75.9844 28.6094 75.9844\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-66\"/>\n",
        "     <path d=\"\n",
        "M8.5 21.5781\n",
        "L8.5 54.6875\n",
        "L17.4844 54.6875\n",
        "L17.4844 21.9219\n",
        "Q17.4844 14.1562 20.5 10.2656\n",
        "Q23.5312 6.39062 29.5938 6.39062\n",
        "Q36.8594 6.39062 41.0781 11.0312\n",
        "Q45.3125 15.6719 45.3125 23.6875\n",
        "L45.3125 54.6875\n",
        "L54.2969 54.6875\n",
        "L54.2969 0\n",
        "L45.3125 0\n",
        "L45.3125 8.40625\n",
        "Q42.0469 3.42188 37.7188 1\n",
        "Q33.4062 -1.42188 27.6875 -1.42188\n",
        "Q18.2656 -1.42188 13.375 4.4375\n",
        "Q8.5 10.2969 8.5 21.5781\" id=\"BitstreamVeraSans-Roman-75\"/>\n",
        "     <path d=\"\n",
        "M45.4062 46.3906\n",
        "L45.4062 75.9844\n",
        "L54.3906 75.9844\n",
        "L54.3906 0\n",
        "L45.4062 0\n",
        "L45.4062 8.20312\n",
        "Q42.5781 3.32812 38.25 0.953125\n",
        "Q33.9375 -1.42188 27.875 -1.42188\n",
        "Q17.9688 -1.42188 11.7344 6.48438\n",
        "Q5.51562 14.4062 5.51562 27.2969\n",
        "Q5.51562 40.1875 11.7344 48.0938\n",
        "Q17.9688 56 27.875 56\n",
        "Q33.9375 56 38.25 53.625\n",
        "Q42.5781 51.2656 45.4062 46.3906\n",
        "M14.7969 27.2969\n",
        "Q14.7969 17.3906 18.875 11.75\n",
        "Q22.9531 6.10938 30.0781 6.10938\n",
        "Q37.2031 6.10938 41.2969 11.75\n",
        "Q45.4062 17.3906 45.4062 27.2969\n",
        "Q45.4062 37.2031 41.2969 42.8438\n",
        "Q37.2031 48.4844 30.0781 48.4844\n",
        "Q22.9531 48.4844 18.875 42.8438\n",
        "Q14.7969 37.2031 14.7969 27.2969\" id=\"BitstreamVeraSans-Roman-64\"/>\n",
        "     <path d=\"\n",
        "M56.2031 29.5938\n",
        "L56.2031 25.2031\n",
        "L14.8906 25.2031\n",
        "Q15.4844 15.9219 20.4844 11.0625\n",
        "Q25.4844 6.20312 34.4219 6.20312\n",
        "Q39.5938 6.20312 44.4531 7.46875\n",
        "Q49.3125 8.73438 54.1094 11.2812\n",
        "L54.1094 2.78125\n",
        "Q49.2656 0.734375 44.1875 -0.34375\n",
        "Q39.1094 -1.42188 33.8906 -1.42188\n",
        "Q20.7969 -1.42188 13.1562 6.1875\n",
        "Q5.51562 13.8125 5.51562 26.8125\n",
        "Q5.51562 40.2344 12.7656 48.1094\n",
        "Q20.0156 56 32.3281 56\n",
        "Q43.3594 56 49.7812 48.8906\n",
        "Q56.2031 41.7969 56.2031 29.5938\n",
        "M47.2188 32.2344\n",
        "Q47.125 39.5938 43.0938 43.9844\n",
        "Q39.0625 48.3906 32.4219 48.3906\n",
        "Q24.9062 48.3906 20.3906 44.1406\n",
        "Q15.875 39.8906 15.1875 32.1719\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-65\"/>\n",
        "     <path d=\"\n",
        "M48.7812 52.5938\n",
        "L48.7812 44.1875\n",
        "Q44.9688 46.2969 41.1406 47.3438\n",
        "Q37.3125 48.3906 33.4062 48.3906\n",
        "Q24.6562 48.3906 19.8125 42.8438\n",
        "Q14.9844 37.3125 14.9844 27.2969\n",
        "Q14.9844 17.2812 19.8125 11.7344\n",
        "Q24.6562 6.20312 33.4062 6.20312\n",
        "Q37.3125 6.20312 41.1406 7.25\n",
        "Q44.9688 8.29688 48.7812 10.4062\n",
        "L48.7812 2.09375\n",
        "Q45.0156 0.34375 40.9844 -0.53125\n",
        "Q36.9688 -1.42188 32.4219 -1.42188\n",
        "Q20.0625 -1.42188 12.7812 6.34375\n",
        "Q5.51562 14.1094 5.51562 27.2969\n",
        "Q5.51562 40.6719 12.8594 48.3281\n",
        "Q20.2188 56 33.0156 56\n",
        "Q37.1562 56 41.1094 55.1406\n",
        "Q45.0625 54.2969 48.7812 52.5938\" id=\"BitstreamVeraSans-Roman-63\"/>\n",
        "     <path d=\"\n",
        "M9.42188 54.6875\n",
        "L18.4062 54.6875\n",
        "L18.4062 0\n",
        "L9.42188 0\n",
        "z\n",
        "\n",
        "M9.42188 75.9844\n",
        "L18.4062 75.9844\n",
        "L18.4062 64.5938\n",
        "L9.42188 64.5938\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-69\"/>\n",
        "     <path d=\"\n",
        "M48.6875 27.2969\n",
        "Q48.6875 37.2031 44.6094 42.8438\n",
        "Q40.5312 48.4844 33.4062 48.4844\n",
        "Q26.2656 48.4844 22.1875 42.8438\n",
        "Q18.1094 37.2031 18.1094 27.2969\n",
        "Q18.1094 17.3906 22.1875 11.75\n",
        "Q26.2656 6.10938 33.4062 6.10938\n",
        "Q40.5312 6.10938 44.6094 11.75\n",
        "Q48.6875 17.3906 48.6875 27.2969\n",
        "M18.1094 46.3906\n",
        "Q20.9531 51.2656 25.2656 53.625\n",
        "Q29.5938 56 35.5938 56\n",
        "Q45.5625 56 51.7812 48.0938\n",
        "Q58.0156 40.1875 58.0156 27.2969\n",
        "Q58.0156 14.4062 51.7812 6.48438\n",
        "Q45.5625 -1.42188 35.5938 -1.42188\n",
        "Q29.5938 -1.42188 25.2656 0.953125\n",
        "Q20.9531 3.32812 18.1094 8.20312\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 75.9844\n",
        "L18.1094 75.9844\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-62\"/>\n",
        "     <path d=\"\n",
        "M9.42188 75.9844\n",
        "L18.4062 75.9844\n",
        "L18.4062 0\n",
        "L9.42188 0\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-6c\"/>\n",
        "     <path d=\"\n",
        "M54.8906 33.0156\n",
        "L54.8906 0\n",
        "L45.9062 0\n",
        "L45.9062 32.7188\n",
        "Q45.9062 40.4844 42.875 44.3281\n",
        "Q39.8438 48.1875 33.7969 48.1875\n",
        "Q26.5156 48.1875 22.3125 43.5469\n",
        "Q18.1094 38.9219 18.1094 30.9062\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 54.6875\n",
        "L18.1094 54.6875\n",
        "L18.1094 46.1875\n",
        "Q21.3438 51.125 25.7031 53.5625\n",
        "Q30.0781 56 35.7969 56\n",
        "Q45.2188 56 50.0469 50.1719\n",
        "Q54.8906 44.3438 54.8906 33.0156\" id=\"BitstreamVeraSans-Roman-6e\"/>\n",
        "     <path d=\"\n",
        "M30.6094 48.3906\n",
        "Q23.3906 48.3906 19.1875 42.75\n",
        "Q14.9844 37.1094 14.9844 27.2969\n",
        "Q14.9844 17.4844 19.1562 11.8438\n",
        "Q23.3438 6.20312 30.6094 6.20312\n",
        "Q37.7969 6.20312 41.9844 11.8594\n",
        "Q46.1875 17.5312 46.1875 27.2969\n",
        "Q46.1875 37.0156 41.9844 42.7031\n",
        "Q37.7969 48.3906 30.6094 48.3906\n",
        "M30.6094 56\n",
        "Q42.3281 56 49.0156 48.375\n",
        "Q55.7188 40.7656 55.7188 27.2969\n",
        "Q55.7188 13.875 49.0156 6.21875\n",
        "Q42.3281 -1.42188 30.6094 -1.42188\n",
        "Q18.8438 -1.42188 12.1719 6.21875\n",
        "Q5.51562 13.875 5.51562 27.2969\n",
        "Q5.51562 40.7656 12.1719 48.375\n",
        "Q18.8438 56 30.6094 56\" id=\"BitstreamVeraSans-Roman-6f\"/>\n",
        "     <path d=\"\n",
        "M19.6719 64.7969\n",
        "L19.6719 37.4062\n",
        "L32.0781 37.4062\n",
        "Q38.9688 37.4062 42.7188 40.9688\n",
        "Q46.4844 44.5312 46.4844 51.125\n",
        "Q46.4844 57.6719 42.7188 61.2344\n",
        "Q38.9688 64.7969 32.0781 64.7969\n",
        "z\n",
        "\n",
        "M9.8125 72.9062\n",
        "L32.0781 72.9062\n",
        "Q44.3438 72.9062 50.6094 67.3594\n",
        "Q56.8906 61.8125 56.8906 51.125\n",
        "Q56.8906 40.3281 50.6094 34.8125\n",
        "Q44.3438 29.2969 32.0781 29.2969\n",
        "L19.6719 29.2969\n",
        "L19.6719 0\n",
        "L9.8125 0\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-50\"/>\n",
        "    </defs>\n",
        "    <g transform=\"translate(29.44875 16.318125)scale(0.12 -0.12)\">\n",
        "     <use xlink:href=\"#BitstreamVeraSans-Roman-50\"/>\n",
        "     <use x=\"58.552734375\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"97.416015625\" xlink:href=\"#BitstreamVeraSans-Roman-65\"/>\n",
        "     <use x=\"158.939453125\" xlink:href=\"#BitstreamVeraSans-Roman-64\"/>\n",
        "     <use x=\"222.416015625\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"250.19921875\" xlink:href=\"#BitstreamVeraSans-Roman-63\"/>\n",
        "     <use x=\"305.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-74\"/>\n",
        "     <use x=\"344.388671875\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"372.171875\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"433.353515625\" xlink:href=\"#BitstreamVeraSans-Roman-6e\"/>\n",
        "     <use x=\"496.732421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"528.51953125\" xlink:href=\"#BitstreamVeraSans-Roman-64\"/>\n",
        "     <use x=\"591.99609375\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"619.779296875\" xlink:href=\"#BitstreamVeraSans-Roman-73\"/>\n",
        "     <use x=\"671.87890625\" xlink:href=\"#BitstreamVeraSans-Roman-74\"/>\n",
        "     <use x=\"711.087890625\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"752.201171875\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"779.984375\" xlink:href=\"#BitstreamVeraSans-Roman-62\"/>\n",
        "     <use x=\"843.4609375\" xlink:href=\"#BitstreamVeraSans-Roman-75\"/>\n",
        "     <use x=\"906.83984375\" xlink:href=\"#BitstreamVeraSans-Roman-74\"/>\n",
        "     <use x=\"946.048828125\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"973.83203125\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"1035.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-6e\"/>\n",
        "     <use x=\"1098.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"1130.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-66\"/>\n",
        "     <use x=\"1165.384765625\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"1226.56640625\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"1267.6796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"1299.466796875\" xlink:href=\"#BitstreamVeraSans-Roman-64\"/>\n",
        "     <use x=\"1362.943359375\" xlink:href=\"#BitstreamVeraSans-Roman-65\"/>\n",
        "     <use x=\"1424.466796875\" xlink:href=\"#BitstreamVeraSans-Roman-63\"/>\n",
        "     <use x=\"1479.447265625\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"1507.23046875\" xlink:href=\"#BitstreamVeraSans-Roman-6d\"/>\n",
        "     <use x=\"1604.642578125\" xlink:href=\"#BitstreamVeraSans-Roman-61\"/>\n",
        "     <use x=\"1665.921875\" xlink:href=\"#BitstreamVeraSans-Roman-6c\"/>\n",
        "     <use x=\"1693.705078125\" xlink:href=\"#BitstreamVeraSans-Roman-73\"/>\n",
        "     <use x=\"1745.8046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"1777.591796875\" xlink:href=\"#BitstreamVeraSans-Roman-66\"/>\n",
        "     <use x=\"1812.796875\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"1851.66015625\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"1912.841796875\" xlink:href=\"#BitstreamVeraSans-Roman-6d\"/>\n",
        "     <use x=\"2010.25390625\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"2042.041015625\" xlink:href=\"#BitstreamVeraSans-Roman-62\"/>\n",
        "     <use x=\"2105.517578125\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"2133.30078125\" xlink:href=\"#BitstreamVeraSans-Roman-6e\"/>\n",
        "     <use x=\"2196.6796875\" xlink:href=\"#BitstreamVeraSans-Roman-61\"/>\n",
        "     <use x=\"2257.958984375\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"2299.072265625\" xlink:href=\"#BitstreamVeraSans-Roman-79\"/>\n",
        "     <use x=\"2358.251953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"2390.0390625\" xlink:href=\"#BitstreamVeraSans-Roman-63\"/>\n",
        "     <use x=\"2445.01953125\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"2506.201171875\" xlink:href=\"#BitstreamVeraSans-Roman-64\"/>\n",
        "     <use x=\"2569.677734375\" xlink:href=\"#BitstreamVeraSans-Roman-65\"/>\n",
        "     <use x=\"2631.201171875\" xlink:href=\"#BitstreamVeraSans-Roman-73\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "  </g>\n",
        " </g>\n",
        " <defs>\n",
        "  <clipPath id=\"pef37260a9e\">\n",
        "   <rect height=\"223.2\" width=\"223.2\" x=\"78.553125\" y=\"32.478125\"/>\n",
        "  </clipPath>\n",
        " </defs>\n",
        "</svg>\n"
       ],
       "text": [
        "<matplotlib.figure.Figure at 0x1126544e0>"
       ]
      }
     ],
     "prompt_number": 30
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def test_tensor_net():\n",
      "    # create a simple binary to decimal converter\n",
      "    digit_dataset, digit_labels = create_digit_dataset()\n",
      "    \n",
      "    # create a small network:\n",
      "\n",
      "    net = Network(metric=CategoricalCrossEntropy)\n",
      "    print(\"Initialization OK\")\n",
      "    first_layer = LinearLayer(digit_dataset.shape[1], 3)\n",
      "    first_layer_activation = ActivationLayer(LogisticNeuron)\n",
      "    first_layer.connect_to(first_layer_activation)\n",
      "    \n",
      "    second_layer = LinearLayer(3,  11, tensor=True) # 0, 1, ..., 9, 10\n",
      "    first_layer_activation.connect_to(second_layer)\n",
      "    \n",
      "    second_layer_activation = ActivationLayer(SoftmaxNeuron)\n",
      "    second_layer.connect_to(second_layer_activation)\n",
      "    \n",
      "    net.add_layer(first_layer, input=True)\n",
      "    net.add_layer(first_layer_activation)\n",
      "    net.add_layer(second_layer)\n",
      "    net.add_layer(second_layer_activation, output=True)\n",
      "    \n",
      "    print(\"Construction OK\")\n",
      "    \n",
      "    net.clear()\n",
      "    print(\"Clearing OK\")\n",
      "    net.activate(digit_dataset)\n",
      "    print(\"Activation OK\")\n",
      "    net.backpropagate(digit_labels)\n",
      "    print(\"Backpropagation OK\")\n",
      "\n",
      "    for gparam, param in zip(net.get_gradients(), net.get_parameters()):\n",
      "        assert(gparam.shape == param.shape), \"Weight updates are not the same size\"\n",
      "        \n",
      "    print(\"Updates and parameters shapes OK\")\n",
      "    \n",
      "    trainer = Trainer(net, 0.01)\n",
      "    print(\"Trainer OK\")\n",
      "    epochs = 2000\n",
      "    \n",
      "    for epoch in range(epochs):\n",
      "        er = trainer.train(digit_dataset, digit_labels)\n",
      "        if epoch % 250 == 0:\n",
      "            print(\"epoch %d, Error %.2f\" % (epoch, er))\n",
      "        \n",
      "    print(\"Training OK\")\n",
      "    \n",
      "    net.clear()\n",
      "    np.set_printoptions(precision=2)\n",
      "    passed_predictions = []\n",
      "    plt.matshow(net.activate(digit_dataset), cmap = matplotlib.cm.Blues)\n",
      "    plt.xticks(np.arange(0,11), [str(w) for w in list(np.arange(0,11))])\n",
      "    plt.yticks(np.arange(0,11), [str(datum) for datum in digit_dataset])\n",
      "    plt.title(\"Prediction distribution for decimals from binary codes\")\n",
      "    \n",
      "    for data, prediction, label in zip(digit_dataset, net.activate(digit_dataset), digit_labels):\n",
      "        passed_predictions.append(prediction.argmax() ==  label)\n",
      "        print(\"%r => %r : %r\" % (data.astype(np.float64), prediction.argmax(), passed_predictions[-1]))\n",
      "    if all(passed_predictions):\n",
      "        print(\"Learning OK\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 31
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "test_tensor_net()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Initialization OK\n",
        "Construction OK\n",
        "Clearing OK\n",
        "Activation OK\n",
        "Backpropagation OK\n",
        "Updates and parameters shapes OK\n",
        "Trainer OK\n",
        "epoch 0, Error 27.47\n",
        "epoch 250, Error 0.13"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 500, Error 0.06"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 750, Error 0.04"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1000, Error 0.03"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1250, Error 0.02"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1500, Error 0.02"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 1750, Error 0.02"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "Training OK"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "array([ 0.,  0.,  0.,  0.]) => 0 : True"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "array([ 0.,  0.,  0.,  1.]) => 1 : True\n",
        "array([ 0.,  0.,  1.,  0.]) => 2 : True\n",
        "array([ 0.,  0.,  1.,  1.]) => 3 : True\n",
        "array([ 0.,  1.,  0.,  0.]) => 4 : True\n",
        "array([ 0.,  1.,  0.,  1.]) => 5 : True\n",
        "array([ 0.,  1.,  1.,  0.]) => 6 : True\n",
        "array([ 0.,  1.,  1.,  1.]) => 7 : True\n",
        "array([ 1.,  0.,  0.,  0.]) => 8 : True\n",
        "array([ 1.,  0.,  0.,  1.]) => 9 : True\n",
        "array([ 1.,  0.,  1.,  0.]) => 10 : True\n",
        "Learning OK\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "svg": [
        "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
        "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
        "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
        "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
        "<svg height=\"262pt\" version=\"1.1\" viewBox=\"0 0 358 262\" width=\"358pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
        " <defs>\n",
        "  <style type=\"text/css\">\n",
        "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
        "  </style>\n",
        " </defs>\n",
        " <g id=\"figure_1\">\n",
        "  <g id=\"patch_1\">\n",
        "   <path d=\"\n",
        "M0 262.878\n",
        "L358.058 262.878\n",
        "L358.058 0\n",
        "L0 0\n",
        "z\n",
        "\" style=\"fill:none;\"/>\n",
        "  </g>\n",
        "  <g id=\"axes_1\">\n",
        "   <g id=\"patch_2\">\n",
        "    <path d=\"\n",
        "M78.5531 255.678\n",
        "L301.753 255.678\n",
        "L301.753 32.4781\n",
        "L78.5531 32.4781\n",
        "z\n",
        "\" style=\"fill:#ffffff;\"/>\n",
        "   </g>\n",
        "   <g clip-path=\"url(#pef37260a9e)\">\n",
        "    <image height=\"224.0\" id=\"image75cc3f47ab\" width=\"224.0\" x=\"78.553125\" xlink:href=\"data:image/png;base64,\n",
        "iVBORw0KGgoAAAANSUhEUgAAAOAAAADgCAYAAAAaLWrhAAAABHNCSVQICAgIfAhkiAAAAvVJREFUeJzt3LFRA0EQRcEVFi6Z4BAVCoesCAYTA0OKAdVQ77jtDmBrnVfj/cvz6/ttDfr6/Jh8Dk7tqf4A7EyAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCELt8/t9FNmJe36+Rzay07M5yXCwghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghMZHmf7C9NCTkSeOwgWEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAj9i02YaTZmOAoXEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhtOUmzLTpjZm17MzswgWEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAgJEEJGmQ5qeujJyNMxuYAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCGbMJuY3phZy87MBBcQQgKEkAAhJEAICRBCAoSQACEkQAgJEEIChJAAISRACAkQQgKEkAAhJEAICRBCAoSQACEkQAgZZeJh00NPO448uYAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCGbMBzGjhszLiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQsgmDKc1vTGz1vzOjAsIIQFCSIAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIISMMsEvTA89uYAQEiCEBAghAUJIgBASIIQECCEBQkiAEBIghAQIIQFCSIAQEiCEBAghAUJIgBASIIQECKE7sWlIuBplgH4AAAAASUVORK5CYII=\" y=\"31.678125\"/>\n",
        "   </g>\n",
        "   <g id=\"patch_3\">\n",
        "    <path d=\"\n",
        "M78.5531 32.4781\n",
        "L301.753 32.4781\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;\"/>\n",
        "   </g>\n",
        "   <g id=\"patch_4\">\n",
        "    <path d=\"\n",
        "M78.5531 255.678\n",
        "L78.5531 32.4781\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;\"/>\n",
        "   </g>\n",
        "   <g id=\"patch_5\">\n",
        "    <path d=\"\n",
        "M78.5531 255.678\n",
        "L301.753 255.678\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;\"/>\n",
        "   </g>\n",
        "   <g id=\"patch_6\">\n",
        "    <path d=\"\n",
        "M301.753 255.678\n",
        "L301.753 32.4781\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;\"/>\n",
        "   </g>\n",
        "   <g id=\"matplotlib.axis_1\">\n",
        "    <g id=\"xtick_1\">\n",
        "     <g id=\"line2d_1\">\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M0 0\n",
        "L0 -4\" id=\"mc7db9fdffb\" style=\"stroke:#000000;stroke-width:0.5;\"/>\n",
        "      </defs>\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"88.6985795455\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_2\">\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M0 0\n",
        "L0 4\" id=\"m5a7d422ac3\" style=\"stroke:#000000;stroke-width:0.5;\"/>\n",
        "      </defs>\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"88.6985795455\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_1\">\n",
        "      <!-- 0 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M31.7812 66.4062\n",
        "Q24.1719 66.4062 20.3281 58.9062\n",
        "Q16.5 51.4219 16.5 36.375\n",
        "Q16.5 21.3906 20.3281 13.8906\n",
        "Q24.1719 6.39062 31.7812 6.39062\n",
        "Q39.4531 6.39062 43.2812 13.8906\n",
        "Q47.125 21.3906 47.125 36.375\n",
        "Q47.125 51.4219 43.2812 58.9062\n",
        "Q39.4531 66.4062 31.7812 66.4062\n",
        "M31.7812 74.2188\n",
        "Q44.0469 74.2188 50.5156 64.5156\n",
        "Q56.9844 54.8281 56.9844 36.375\n",
        "Q56.9844 17.9688 50.5156 8.26562\n",
        "Q44.0469 -1.42188 31.7812 -1.42188\n",
        "Q19.5312 -1.42188 13.0625 8.26562\n",
        "Q6.59375 17.9688 6.59375 36.375\n",
        "Q6.59375 54.8281 13.0625 64.5156\n",
        "Q19.5312 74.2188 31.7812 74.2188\" id=\"BitstreamVeraSans-Roman-30\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(86.1790482955 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_2\">\n",
        "     <g id=\"line2d_3\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"108.989488636\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_4\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"108.989488636\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_2\">\n",
        "      <!-- 1 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M12.4062 8.29688\n",
        "L28.5156 8.29688\n",
        "L28.5156 63.9219\n",
        "L10.9844 60.4062\n",
        "L10.9844 69.3906\n",
        "L28.4219 72.9062\n",
        "L38.2812 72.9062\n",
        "L38.2812 8.29688\n",
        "L54.3906 8.29688\n",
        "L54.3906 0\n",
        "L12.4062 0\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-31\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(106.819176136 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_3\">\n",
        "     <g id=\"line2d_5\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"129.280397727\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_6\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"129.280397727\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_3\">\n",
        "      <!-- 2 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M19.1875 8.29688\n",
        "L53.6094 8.29688\n",
        "L53.6094 0\n",
        "L7.32812 0\n",
        "L7.32812 8.29688\n",
        "Q12.9375 14.1094 22.625 23.8906\n",
        "Q32.3281 33.6875 34.8125 36.5312\n",
        "Q39.5469 41.8438 41.4219 45.5312\n",
        "Q43.3125 49.2188 43.3125 52.7812\n",
        "Q43.3125 58.5938 39.2344 62.25\n",
        "Q35.1562 65.9219 28.6094 65.9219\n",
        "Q23.9688 65.9219 18.8125 64.3125\n",
        "Q13.6719 62.7031 7.8125 59.4219\n",
        "L7.8125 69.3906\n",
        "Q13.7656 71.7812 18.9375 73\n",
        "Q24.125 74.2188 28.4219 74.2188\n",
        "Q39.75 74.2188 46.4844 68.5469\n",
        "Q53.2188 62.8906 53.2188 53.4219\n",
        "Q53.2188 48.9219 51.5312 44.8906\n",
        "Q49.8594 40.875 45.4062 35.4062\n",
        "Q44.1875 33.9844 37.6406 27.2188\n",
        "Q31.1094 20.4531 19.1875 8.29688\" id=\"BitstreamVeraSans-Roman-32\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(126.966335227 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-32\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_4\">\n",
        "     <g id=\"line2d_7\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"149.571306818\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_8\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"149.571306818\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_4\">\n",
        "      <!-- 3 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M40.5781 39.3125\n",
        "Q47.6562 37.7969 51.625 33\n",
        "Q55.6094 28.2188 55.6094 21.1875\n",
        "Q55.6094 10.4062 48.1875 4.48438\n",
        "Q40.7656 -1.42188 27.0938 -1.42188\n",
        "Q22.5156 -1.42188 17.6562 -0.515625\n",
        "Q12.7969 0.390625 7.625 2.20312\n",
        "L7.625 11.7188\n",
        "Q11.7188 9.32812 16.5938 8.10938\n",
        "Q21.4844 6.89062 26.8125 6.89062\n",
        "Q36.0781 6.89062 40.9375 10.5469\n",
        "Q45.7969 14.2031 45.7969 21.1875\n",
        "Q45.7969 27.6406 41.2812 31.2656\n",
        "Q36.7656 34.9062 28.7188 34.9062\n",
        "L20.2188 34.9062\n",
        "L20.2188 43.0156\n",
        "L29.1094 43.0156\n",
        "Q36.375 43.0156 40.2344 45.9219\n",
        "Q44.0938 48.8281 44.0938 54.2969\n",
        "Q44.0938 59.9062 40.1094 62.9062\n",
        "Q36.1406 65.9219 28.7188 65.9219\n",
        "Q24.6562 65.9219 20.0156 65.0312\n",
        "Q15.375 64.1562 9.8125 62.3125\n",
        "L9.8125 71.0938\n",
        "Q15.4375 72.6562 20.3438 73.4375\n",
        "Q25.25 74.2188 29.5938 74.2188\n",
        "Q40.8281 74.2188 47.3594 69.1094\n",
        "Q53.9062 64.0156 53.9062 55.3281\n",
        "Q53.9062 49.2656 50.4375 45.0938\n",
        "Q46.9688 40.9219 40.5781 39.3125\" id=\"BitstreamVeraSans-Roman-33\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(147.172088068 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-33\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_5\">\n",
        "     <g id=\"line2d_9\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"169.862215909\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_10\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"169.862215909\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_5\">\n",
        "      <!-- 4 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M37.7969 64.3125\n",
        "L12.8906 25.3906\n",
        "L37.7969 25.3906\n",
        "z\n",
        "\n",
        "M35.2031 72.9062\n",
        "L47.6094 72.9062\n",
        "L47.6094 25.3906\n",
        "L58.0156 25.3906\n",
        "L58.0156 17.1875\n",
        "L47.6094 17.1875\n",
        "L47.6094 0\n",
        "L37.7969 0\n",
        "L37.7969 17.1875\n",
        "L4.89062 17.1875\n",
        "L4.89062 26.7031\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-34\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(167.205965909 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-34\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_6\">\n",
        "     <g id=\"line2d_11\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"190.153125\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_12\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"190.153125\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_6\">\n",
        "      <!-- 5 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M10.7969 72.9062\n",
        "L49.5156 72.9062\n",
        "L49.5156 64.5938\n",
        "L19.8281 64.5938\n",
        "L19.8281 46.7344\n",
        "Q21.9688 47.4688 24.1094 47.8281\n",
        "Q26.2656 48.1875 28.4219 48.1875\n",
        "Q40.625 48.1875 47.75 41.5\n",
        "Q54.8906 34.8125 54.8906 23.3906\n",
        "Q54.8906 11.625 47.5625 5.09375\n",
        "Q40.2344 -1.42188 26.9062 -1.42188\n",
        "Q22.3125 -1.42188 17.5469 -0.640625\n",
        "Q12.7969 0.140625 7.71875 1.70312\n",
        "L7.71875 11.625\n",
        "Q12.1094 9.23438 16.7969 8.0625\n",
        "Q21.4844 6.89062 26.7031 6.89062\n",
        "Q35.1562 6.89062 40.0781 11.3281\n",
        "Q45.0156 15.7656 45.0156 23.3906\n",
        "Q45.0156 31 40.0781 35.4375\n",
        "Q35.1562 39.8906 26.7031 39.8906\n",
        "Q22.75 39.8906 18.8125 39.0156\n",
        "Q14.8906 38.1406 10.7969 36.2812\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-35\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(187.79453125 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-35\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_7\">\n",
        "     <g id=\"line2d_13\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"210.444034091\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_14\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"210.444034091\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_7\">\n",
        "      <!-- 6 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M33.0156 40.375\n",
        "Q26.375 40.375 22.4844 35.8281\n",
        "Q18.6094 31.2969 18.6094 23.3906\n",
        "Q18.6094 15.5312 22.4844 10.9531\n",
        "Q26.375 6.39062 33.0156 6.39062\n",
        "Q39.6562 6.39062 43.5312 10.9531\n",
        "Q47.4062 15.5312 47.4062 23.3906\n",
        "Q47.4062 31.2969 43.5312 35.8281\n",
        "Q39.6562 40.375 33.0156 40.375\n",
        "M52.5938 71.2969\n",
        "L52.5938 62.3125\n",
        "Q48.875 64.0625 45.0938 64.9844\n",
        "Q41.3125 65.9219 37.5938 65.9219\n",
        "Q27.8281 65.9219 22.6719 59.3281\n",
        "Q17.5312 52.7344 16.7969 39.4062\n",
        "Q19.6719 43.6562 24.0156 45.9219\n",
        "Q28.375 48.1875 33.5938 48.1875\n",
        "Q44.5781 48.1875 50.9531 41.5156\n",
        "Q57.3281 34.8594 57.3281 23.3906\n",
        "Q57.3281 12.1562 50.6875 5.35938\n",
        "Q44.0469 -1.42188 33.0156 -1.42188\n",
        "Q20.3594 -1.42188 13.6719 8.26562\n",
        "Q6.98438 17.9688 6.98438 36.375\n",
        "Q6.98438 53.6562 15.1875 63.9375\n",
        "Q23.3906 74.2188 37.2031 74.2188\n",
        "Q40.9219 74.2188 44.7031 73.4844\n",
        "Q48.4844 72.75 52.5938 71.2969\" id=\"BitstreamVeraSans-Roman-36\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(207.926846591 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-36\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_8\">\n",
        "     <g id=\"line2d_15\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"230.734943182\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_16\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"230.734943182\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_8\">\n",
        "      <!-- 7 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M8.20312 72.9062\n",
        "L55.0781 72.9062\n",
        "L55.0781 68.7031\n",
        "L28.6094 0\n",
        "L18.3125 0\n",
        "L43.2188 64.5938\n",
        "L8.20312 64.5938\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-37\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(228.391193182 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-37\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_9\">\n",
        "     <g id=\"line2d_17\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"251.025852273\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_18\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"251.025852273\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_9\">\n",
        "      <!-- 8 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M31.7812 34.625\n",
        "Q24.75 34.625 20.7188 30.8594\n",
        "Q16.7031 27.0938 16.7031 20.5156\n",
        "Q16.7031 13.9219 20.7188 10.1562\n",
        "Q24.75 6.39062 31.7812 6.39062\n",
        "Q38.8125 6.39062 42.8594 10.1719\n",
        "Q46.9219 13.9688 46.9219 20.5156\n",
        "Q46.9219 27.0938 42.8906 30.8594\n",
        "Q38.875 34.625 31.7812 34.625\n",
        "M21.9219 38.8125\n",
        "Q15.5781 40.375 12.0312 44.7188\n",
        "Q8.5 49.0781 8.5 55.3281\n",
        "Q8.5 64.0625 14.7188 69.1406\n",
        "Q20.9531 74.2188 31.7812 74.2188\n",
        "Q42.6719 74.2188 48.875 69.1406\n",
        "Q55.0781 64.0625 55.0781 55.3281\n",
        "Q55.0781 49.0781 51.5312 44.7188\n",
        "Q48 40.375 41.7031 38.8125\n",
        "Q48.8281 37.1562 52.7969 32.3125\n",
        "Q56.7812 27.4844 56.7812 20.5156\n",
        "Q56.7812 9.90625 50.3125 4.23438\n",
        "Q43.8438 -1.42188 31.7812 -1.42188\n",
        "Q19.7344 -1.42188 13.25 4.23438\n",
        "Q6.78125 9.90625 6.78125 20.5156\n",
        "Q6.78125 27.4844 10.7812 32.3125\n",
        "Q14.7969 37.1562 21.9219 38.8125\n",
        "M18.3125 54.3906\n",
        "Q18.3125 48.7344 21.8438 45.5625\n",
        "Q25.3906 42.3906 31.7812 42.3906\n",
        "Q38.1406 42.3906 41.7188 45.5625\n",
        "Q45.3125 48.7344 45.3125 54.3906\n",
        "Q45.3125 60.0625 41.7188 63.2344\n",
        "Q38.1406 66.4062 31.7812 66.4062\n",
        "Q25.3906 66.4062 21.8438 63.2344\n",
        "Q18.3125 60.0625 18.3125 54.3906\" id=\"BitstreamVeraSans-Roman-38\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(248.525852273 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-38\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_10\">\n",
        "     <g id=\"line2d_19\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"271.316761364\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_20\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"271.316761364\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_10\">\n",
        "      <!-- 9 -->\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M10.9844 1.51562\n",
        "L10.9844 10.5\n",
        "Q14.7031 8.73438 18.5 7.8125\n",
        "Q22.3125 6.89062 25.9844 6.89062\n",
        "Q35.75 6.89062 40.8906 13.4531\n",
        "Q46.0469 20.0156 46.7812 33.4062\n",
        "Q43.9531 29.2031 39.5938 26.9531\n",
        "Q35.25 24.7031 29.9844 24.7031\n",
        "Q19.0469 24.7031 12.6719 31.3125\n",
        "Q6.29688 37.9375 6.29688 49.4219\n",
        "Q6.29688 60.6406 12.9375 67.4219\n",
        "Q19.5781 74.2188 30.6094 74.2188\n",
        "Q43.2656 74.2188 49.9219 64.5156\n",
        "Q56.5938 54.8281 56.5938 36.375\n",
        "Q56.5938 19.1406 48.4062 8.85938\n",
        "Q40.2344 -1.42188 26.4219 -1.42188\n",
        "Q22.7031 -1.42188 18.8906 -0.6875\n",
        "Q15.0938 0.046875 10.9844 1.51562\n",
        "M30.6094 32.4219\n",
        "Q37.25 32.4219 41.125 36.9531\n",
        "Q45.0156 41.5 45.0156 49.4219\n",
        "Q45.0156 57.2812 41.125 61.8438\n",
        "Q37.25 66.4062 30.6094 66.4062\n",
        "Q23.9688 66.4062 20.0938 61.8438\n",
        "Q16.2188 57.2812 16.2188 49.4219\n",
        "Q16.2188 41.5 20.0938 36.9531\n",
        "Q23.9688 32.4219 30.6094 32.4219\" id=\"BitstreamVeraSans-Roman-39\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(268.801917614 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-39\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"xtick_11\">\n",
        "     <g id=\"line2d_21\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"291.607670455\" xlink:href=\"#mc7db9fdffb\" y=\"255.678125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_22\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"291.607670455\" xlink:href=\"#m5a7d422ac3\" y=\"32.478125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_11\">\n",
        "      <!-- 10 -->\n",
        "      <g transform=\"translate(286.126420455 26.3984375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"63.623046875\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"matplotlib.axis_2\">\n",
        "    <g id=\"ytick_1\">\n",
        "     <g id=\"line2d_23\">\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M0 0\n",
        "L4 0\" id=\"md7965d1ba0\" style=\"stroke:#000000;stroke-width:0.5;\"/>\n",
        "      </defs>\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"42.6235795455\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_24\">\n",
        "      <defs>\n",
        "       <path d=\"\n",
        "M0 0\n",
        "L-4 0\" id=\"md9a1c1a7cd\" style=\"stroke:#000000;stroke-width:0.5;\"/>\n",
        "      </defs>\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"42.6235795455\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_12\">\n",
        "      <!-- [ 0.  0.  0.  0.] -->\n",
        "      <defs>\n",
        "       <path id=\"BitstreamVeraSans-Roman-20\"/>\n",
        "       <path d=\"\n",
        "M10.6875 12.4062\n",
        "L21 12.4062\n",
        "L21 0\n",
        "L10.6875 0\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-2e\"/>\n",
        "       <path d=\"\n",
        "M30.4219 75.9844\n",
        "L30.4219 -13.1875\n",
        "L9.71875 -13.1875\n",
        "L9.71875 -6.20312\n",
        "L21.3906 -6.20312\n",
        "L21.3906 69\n",
        "L9.71875 69\n",
        "L9.71875 75.9844\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-5d\"/>\n",
        "       <path d=\"\n",
        "M8.59375 75.9844\n",
        "L29.2969 75.9844\n",
        "L29.2969 69\n",
        "L17.5781 69\n",
        "L17.5781 -6.20312\n",
        "L29.2969 -6.20312\n",
        "L29.2969 -13.1875\n",
        "L8.59375 -13.1875\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-5b\"/>\n",
        "      </defs>\n",
        "      <g transform=\"translate(7.2 45.3829545455)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_2\">\n",
        "     <g id=\"line2d_25\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"62.9144886364\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_26\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"62.9144886364\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_13\">\n",
        "      <!-- [ 0.  0.  0.  1.] -->\n",
        "      <g transform=\"translate(7.2 65.6738636364)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_3\">\n",
        "     <g id=\"line2d_27\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"83.2053977273\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_28\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"83.2053977273\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_14\">\n",
        "      <!-- [ 0.  0.  1.  0.] -->\n",
        "      <g transform=\"translate(7.2 85.9647727273)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_4\">\n",
        "     <g id=\"line2d_29\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"103.496306818\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_30\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"103.496306818\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_15\">\n",
        "      <!-- [ 0.  0.  1.  1.] -->\n",
        "      <g transform=\"translate(7.2 106.255681818)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_5\">\n",
        "     <g id=\"line2d_31\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"123.787215909\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_32\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"123.787215909\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_16\">\n",
        "      <!-- [ 0.  1.  0.  0.] -->\n",
        "      <g transform=\"translate(7.2 126.546590909)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_6\">\n",
        "     <g id=\"line2d_33\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"144.078125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_34\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"144.078125\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_17\">\n",
        "      <!-- [ 0.  1.  0.  1.] -->\n",
        "      <g transform=\"translate(7.2 146.8375)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_7\">\n",
        "     <g id=\"line2d_35\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"164.369034091\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_36\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"164.369034091\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_18\">\n",
        "      <!-- [ 0.  1.  1.  0.] -->\n",
        "      <g transform=\"translate(7.2 167.128409091)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_8\">\n",
        "     <g id=\"line2d_37\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"184.659943182\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_38\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"184.659943182\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_19\">\n",
        "      <!-- [ 0.  1.  1.  1.] -->\n",
        "      <g transform=\"translate(7.2 187.419318182)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_9\">\n",
        "     <g id=\"line2d_39\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"204.950852273\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_40\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"204.950852273\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_20\">\n",
        "      <!-- [ 1.  0.  0.  0.] -->\n",
        "      <g transform=\"translate(7.2 207.710227273)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_10\">\n",
        "     <g id=\"line2d_41\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"225.241761364\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_42\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"225.241761364\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_21\">\n",
        "      <!-- [ 1.  0.  0.  1.] -->\n",
        "      <g transform=\"translate(7.2 228.001136364)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "    <g id=\"ytick_11\">\n",
        "     <g id=\"line2d_43\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"78.553125\" xlink:href=\"#md7965d1ba0\" y=\"245.532670455\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"line2d_44\">\n",
        "      <g>\n",
        "       <use style=\"stroke:#000000;stroke-width:0.5;\" x=\"301.753125\" xlink:href=\"#md9a1c1a7cd\" y=\"245.532670455\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "     <g id=\"text_22\">\n",
        "      <!-- [ 1.  0.  1.  0.] -->\n",
        "      <g transform=\"translate(7.2 248.292045455)scale(0.1 -0.1)\">\n",
        "       <use xlink:href=\"#BitstreamVeraSans-Roman-5b\"/>\n",
        "       <use x=\"39.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"70.80078125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"134.423828125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"166.2109375\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"197.998046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"229.78515625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"293.408203125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"325.1953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"356.982421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"388.76953125\" xlink:href=\"#BitstreamVeraSans-Roman-31\"/>\n",
        "       <use x=\"452.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"484.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"515.966796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "       <use x=\"547.75390625\" xlink:href=\"#BitstreamVeraSans-Roman-30\"/>\n",
        "       <use x=\"611.376953125\" xlink:href=\"#BitstreamVeraSans-Roman-2e\"/>\n",
        "       <use x=\"643.1640625\" xlink:href=\"#BitstreamVeraSans-Roman-5d\"/>\n",
        "      </g>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_23\">\n",
        "    <!-- Prediction distribution for decimals from binary codes -->\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M32.1719 -5.07812\n",
        "Q28.375 -14.8438 24.75 -17.8125\n",
        "Q21.1406 -20.7969 15.0938 -20.7969\n",
        "L7.90625 -20.7969\n",
        "L7.90625 -13.2812\n",
        "L13.1875 -13.2812\n",
        "Q16.8906 -13.2812 18.9375 -11.5156\n",
        "Q21 -9.76562 23.4844 -3.21875\n",
        "L25.0938 0.875\n",
        "L2.98438 54.6875\n",
        "L12.5 54.6875\n",
        "L29.5938 11.9219\n",
        "L46.6875 54.6875\n",
        "L56.2031 54.6875\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-79\"/>\n",
        "     <path d=\"\n",
        "M52 44.1875\n",
        "Q55.375 50.25 60.0625 53.125\n",
        "Q64.75 56 71.0938 56\n",
        "Q79.6406 56 84.2812 50.0156\n",
        "Q88.9219 44.0469 88.9219 33.0156\n",
        "L88.9219 0\n",
        "L79.8906 0\n",
        "L79.8906 32.7188\n",
        "Q79.8906 40.5781 77.0938 44.375\n",
        "Q74.3125 48.1875 68.6094 48.1875\n",
        "Q61.625 48.1875 57.5625 43.5469\n",
        "Q53.5156 38.9219 53.5156 30.9062\n",
        "L53.5156 0\n",
        "L44.4844 0\n",
        "L44.4844 32.7188\n",
        "Q44.4844 40.625 41.7031 44.4062\n",
        "Q38.9219 48.1875 33.1094 48.1875\n",
        "Q26.2188 48.1875 22.1562 43.5312\n",
        "Q18.1094 38.875 18.1094 30.9062\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 54.6875\n",
        "L18.1094 54.6875\n",
        "L18.1094 46.1875\n",
        "Q21.1875 51.2188 25.4844 53.6094\n",
        "Q29.7812 56 35.6875 56\n",
        "Q41.6562 56 45.8281 52.9688\n",
        "Q50 49.9531 52 44.1875\" id=\"BitstreamVeraSans-Roman-6d\"/>\n",
        "     <path d=\"\n",
        "M41.1094 46.2969\n",
        "Q39.5938 47.1719 37.8125 47.5781\n",
        "Q36.0312 48 33.8906 48\n",
        "Q26.2656 48 22.1875 43.0469\n",
        "Q18.1094 38.0938 18.1094 28.8125\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 54.6875\n",
        "L18.1094 54.6875\n",
        "L18.1094 46.1875\n",
        "Q20.9531 51.1719 25.4844 53.5781\n",
        "Q30.0312 56 36.5312 56\n",
        "Q37.4531 56 38.5781 55.875\n",
        "Q39.7031 55.7656 41.0625 55.5156\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-72\"/>\n",
        "     <path d=\"\n",
        "M34.2812 27.4844\n",
        "Q23.3906 27.4844 19.1875 25\n",
        "Q14.9844 22.5156 14.9844 16.5\n",
        "Q14.9844 11.7188 18.1406 8.90625\n",
        "Q21.2969 6.10938 26.7031 6.10938\n",
        "Q34.1875 6.10938 38.7031 11.4062\n",
        "Q43.2188 16.7031 43.2188 25.4844\n",
        "L43.2188 27.4844\n",
        "z\n",
        "\n",
        "M52.2031 31.2031\n",
        "L52.2031 0\n",
        "L43.2188 0\n",
        "L43.2188 8.29688\n",
        "Q40.1406 3.32812 35.5469 0.953125\n",
        "Q30.9531 -1.42188 24.3125 -1.42188\n",
        "Q15.9219 -1.42188 10.9531 3.29688\n",
        "Q6 8.01562 6 15.9219\n",
        "Q6 25.1406 12.1719 29.8281\n",
        "Q18.3594 34.5156 30.6094 34.5156\n",
        "L43.2188 34.5156\n",
        "L43.2188 35.4062\n",
        "Q43.2188 41.6094 39.1406 45\n",
        "Q35.0625 48.3906 27.6875 48.3906\n",
        "Q23 48.3906 18.5469 47.2656\n",
        "Q14.1094 46.1406 10.0156 43.8906\n",
        "L10.0156 52.2031\n",
        "Q14.9375 54.1094 19.5781 55.0469\n",
        "Q24.2188 56 28.6094 56\n",
        "Q40.4844 56 46.3438 49.8438\n",
        "Q52.2031 43.7031 52.2031 31.2031\" id=\"BitstreamVeraSans-Roman-61\"/>\n",
        "     <path d=\"\n",
        "M18.3125 70.2188\n",
        "L18.3125 54.6875\n",
        "L36.8125 54.6875\n",
        "L36.8125 47.7031\n",
        "L18.3125 47.7031\n",
        "L18.3125 18.0156\n",
        "Q18.3125 11.3281 20.1406 9.42188\n",
        "Q21.9688 7.51562 27.5938 7.51562\n",
        "L36.8125 7.51562\n",
        "L36.8125 0\n",
        "L27.5938 0\n",
        "Q17.1875 0 13.2344 3.875\n",
        "Q9.28125 7.76562 9.28125 18.0156\n",
        "L9.28125 47.7031\n",
        "L2.6875 47.7031\n",
        "L2.6875 54.6875\n",
        "L9.28125 54.6875\n",
        "L9.28125 70.2188\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-74\"/>\n",
        "     <path d=\"\n",
        "M44.2812 53.0781\n",
        "L44.2812 44.5781\n",
        "Q40.4844 46.5312 36.375 47.5\n",
        "Q32.2812 48.4844 27.875 48.4844\n",
        "Q21.1875 48.4844 17.8438 46.4375\n",
        "Q14.5 44.3906 14.5 40.2812\n",
        "Q14.5 37.1562 16.8906 35.375\n",
        "Q19.2812 33.5938 26.5156 31.9844\n",
        "L29.5938 31.2969\n",
        "Q39.1562 29.25 43.1875 25.5156\n",
        "Q47.2188 21.7812 47.2188 15.0938\n",
        "Q47.2188 7.46875 41.1875 3.01562\n",
        "Q35.1562 -1.42188 24.6094 -1.42188\n",
        "Q20.2188 -1.42188 15.4531 -0.5625\n",
        "Q10.6875 0.296875 5.42188 2\n",
        "L5.42188 11.2812\n",
        "Q10.4062 8.6875 15.2344 7.39062\n",
        "Q20.0625 6.10938 24.8125 6.10938\n",
        "Q31.1562 6.10938 34.5625 8.28125\n",
        "Q37.9844 10.4531 37.9844 14.4062\n",
        "Q37.9844 18.0625 35.5156 20.0156\n",
        "Q33.0625 21.9688 24.7031 23.7812\n",
        "L21.5781 24.5156\n",
        "Q13.2344 26.2656 9.51562 29.9062\n",
        "Q5.8125 33.5469 5.8125 39.8906\n",
        "Q5.8125 47.6094 11.2812 51.7969\n",
        "Q16.75 56 26.8125 56\n",
        "Q31.7812 56 36.1719 55.2656\n",
        "Q40.5781 54.5469 44.2812 53.0781\" id=\"BitstreamVeraSans-Roman-73\"/>\n",
        "     <path d=\"\n",
        "M37.1094 75.9844\n",
        "L37.1094 68.5\n",
        "L28.5156 68.5\n",
        "Q23.6875 68.5 21.7969 66.5469\n",
        "Q19.9219 64.5938 19.9219 59.5156\n",
        "L19.9219 54.6875\n",
        "L34.7188 54.6875\n",
        "L34.7188 47.7031\n",
        "L19.9219 47.7031\n",
        "L19.9219 0\n",
        "L10.8906 0\n",
        "L10.8906 47.7031\n",
        "L2.29688 47.7031\n",
        "L2.29688 54.6875\n",
        "L10.8906 54.6875\n",
        "L10.8906 58.5\n",
        "Q10.8906 67.625 15.1406 71.7969\n",
        "Q19.3906 75.9844 28.6094 75.9844\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-66\"/>\n",
        "     <path d=\"\n",
        "M8.5 21.5781\n",
        "L8.5 54.6875\n",
        "L17.4844 54.6875\n",
        "L17.4844 21.9219\n",
        "Q17.4844 14.1562 20.5 10.2656\n",
        "Q23.5312 6.39062 29.5938 6.39062\n",
        "Q36.8594 6.39062 41.0781 11.0312\n",
        "Q45.3125 15.6719 45.3125 23.6875\n",
        "L45.3125 54.6875\n",
        "L54.2969 54.6875\n",
        "L54.2969 0\n",
        "L45.3125 0\n",
        "L45.3125 8.40625\n",
        "Q42.0469 3.42188 37.7188 1\n",
        "Q33.4062 -1.42188 27.6875 -1.42188\n",
        "Q18.2656 -1.42188 13.375 4.4375\n",
        "Q8.5 10.2969 8.5 21.5781\" id=\"BitstreamVeraSans-Roman-75\"/>\n",
        "     <path d=\"\n",
        "M45.4062 46.3906\n",
        "L45.4062 75.9844\n",
        "L54.3906 75.9844\n",
        "L54.3906 0\n",
        "L45.4062 0\n",
        "L45.4062 8.20312\n",
        "Q42.5781 3.32812 38.25 0.953125\n",
        "Q33.9375 -1.42188 27.875 -1.42188\n",
        "Q17.9688 -1.42188 11.7344 6.48438\n",
        "Q5.51562 14.4062 5.51562 27.2969\n",
        "Q5.51562 40.1875 11.7344 48.0938\n",
        "Q17.9688 56 27.875 56\n",
        "Q33.9375 56 38.25 53.625\n",
        "Q42.5781 51.2656 45.4062 46.3906\n",
        "M14.7969 27.2969\n",
        "Q14.7969 17.3906 18.875 11.75\n",
        "Q22.9531 6.10938 30.0781 6.10938\n",
        "Q37.2031 6.10938 41.2969 11.75\n",
        "Q45.4062 17.3906 45.4062 27.2969\n",
        "Q45.4062 37.2031 41.2969 42.8438\n",
        "Q37.2031 48.4844 30.0781 48.4844\n",
        "Q22.9531 48.4844 18.875 42.8438\n",
        "Q14.7969 37.2031 14.7969 27.2969\" id=\"BitstreamVeraSans-Roman-64\"/>\n",
        "     <path d=\"\n",
        "M56.2031 29.5938\n",
        "L56.2031 25.2031\n",
        "L14.8906 25.2031\n",
        "Q15.4844 15.9219 20.4844 11.0625\n",
        "Q25.4844 6.20312 34.4219 6.20312\n",
        "Q39.5938 6.20312 44.4531 7.46875\n",
        "Q49.3125 8.73438 54.1094 11.2812\n",
        "L54.1094 2.78125\n",
        "Q49.2656 0.734375 44.1875 -0.34375\n",
        "Q39.1094 -1.42188 33.8906 -1.42188\n",
        "Q20.7969 -1.42188 13.1562 6.1875\n",
        "Q5.51562 13.8125 5.51562 26.8125\n",
        "Q5.51562 40.2344 12.7656 48.1094\n",
        "Q20.0156 56 32.3281 56\n",
        "Q43.3594 56 49.7812 48.8906\n",
        "Q56.2031 41.7969 56.2031 29.5938\n",
        "M47.2188 32.2344\n",
        "Q47.125 39.5938 43.0938 43.9844\n",
        "Q39.0625 48.3906 32.4219 48.3906\n",
        "Q24.9062 48.3906 20.3906 44.1406\n",
        "Q15.875 39.8906 15.1875 32.1719\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-65\"/>\n",
        "     <path d=\"\n",
        "M48.7812 52.5938\n",
        "L48.7812 44.1875\n",
        "Q44.9688 46.2969 41.1406 47.3438\n",
        "Q37.3125 48.3906 33.4062 48.3906\n",
        "Q24.6562 48.3906 19.8125 42.8438\n",
        "Q14.9844 37.3125 14.9844 27.2969\n",
        "Q14.9844 17.2812 19.8125 11.7344\n",
        "Q24.6562 6.20312 33.4062 6.20312\n",
        "Q37.3125 6.20312 41.1406 7.25\n",
        "Q44.9688 8.29688 48.7812 10.4062\n",
        "L48.7812 2.09375\n",
        "Q45.0156 0.34375 40.9844 -0.53125\n",
        "Q36.9688 -1.42188 32.4219 -1.42188\n",
        "Q20.0625 -1.42188 12.7812 6.34375\n",
        "Q5.51562 14.1094 5.51562 27.2969\n",
        "Q5.51562 40.6719 12.8594 48.3281\n",
        "Q20.2188 56 33.0156 56\n",
        "Q37.1562 56 41.1094 55.1406\n",
        "Q45.0625 54.2969 48.7812 52.5938\" id=\"BitstreamVeraSans-Roman-63\"/>\n",
        "     <path d=\"\n",
        "M9.42188 54.6875\n",
        "L18.4062 54.6875\n",
        "L18.4062 0\n",
        "L9.42188 0\n",
        "z\n",
        "\n",
        "M9.42188 75.9844\n",
        "L18.4062 75.9844\n",
        "L18.4062 64.5938\n",
        "L9.42188 64.5938\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-69\"/>\n",
        "     <path d=\"\n",
        "M48.6875 27.2969\n",
        "Q48.6875 37.2031 44.6094 42.8438\n",
        "Q40.5312 48.4844 33.4062 48.4844\n",
        "Q26.2656 48.4844 22.1875 42.8438\n",
        "Q18.1094 37.2031 18.1094 27.2969\n",
        "Q18.1094 17.3906 22.1875 11.75\n",
        "Q26.2656 6.10938 33.4062 6.10938\n",
        "Q40.5312 6.10938 44.6094 11.75\n",
        "Q48.6875 17.3906 48.6875 27.2969\n",
        "M18.1094 46.3906\n",
        "Q20.9531 51.2656 25.2656 53.625\n",
        "Q29.5938 56 35.5938 56\n",
        "Q45.5625 56 51.7812 48.0938\n",
        "Q58.0156 40.1875 58.0156 27.2969\n",
        "Q58.0156 14.4062 51.7812 6.48438\n",
        "Q45.5625 -1.42188 35.5938 -1.42188\n",
        "Q29.5938 -1.42188 25.2656 0.953125\n",
        "Q20.9531 3.32812 18.1094 8.20312\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 75.9844\n",
        "L18.1094 75.9844\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-62\"/>\n",
        "     <path d=\"\n",
        "M9.42188 75.9844\n",
        "L18.4062 75.9844\n",
        "L18.4062 0\n",
        "L9.42188 0\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-6c\"/>\n",
        "     <path d=\"\n",
        "M54.8906 33.0156\n",
        "L54.8906 0\n",
        "L45.9062 0\n",
        "L45.9062 32.7188\n",
        "Q45.9062 40.4844 42.875 44.3281\n",
        "Q39.8438 48.1875 33.7969 48.1875\n",
        "Q26.5156 48.1875 22.3125 43.5469\n",
        "Q18.1094 38.9219 18.1094 30.9062\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 54.6875\n",
        "L18.1094 54.6875\n",
        "L18.1094 46.1875\n",
        "Q21.3438 51.125 25.7031 53.5625\n",
        "Q30.0781 56 35.7969 56\n",
        "Q45.2188 56 50.0469 50.1719\n",
        "Q54.8906 44.3438 54.8906 33.0156\" id=\"BitstreamVeraSans-Roman-6e\"/>\n",
        "     <path d=\"\n",
        "M30.6094 48.3906\n",
        "Q23.3906 48.3906 19.1875 42.75\n",
        "Q14.9844 37.1094 14.9844 27.2969\n",
        "Q14.9844 17.4844 19.1562 11.8438\n",
        "Q23.3438 6.20312 30.6094 6.20312\n",
        "Q37.7969 6.20312 41.9844 11.8594\n",
        "Q46.1875 17.5312 46.1875 27.2969\n",
        "Q46.1875 37.0156 41.9844 42.7031\n",
        "Q37.7969 48.3906 30.6094 48.3906\n",
        "M30.6094 56\n",
        "Q42.3281 56 49.0156 48.375\n",
        "Q55.7188 40.7656 55.7188 27.2969\n",
        "Q55.7188 13.875 49.0156 6.21875\n",
        "Q42.3281 -1.42188 30.6094 -1.42188\n",
        "Q18.8438 -1.42188 12.1719 6.21875\n",
        "Q5.51562 13.875 5.51562 27.2969\n",
        "Q5.51562 40.7656 12.1719 48.375\n",
        "Q18.8438 56 30.6094 56\" id=\"BitstreamVeraSans-Roman-6f\"/>\n",
        "     <path d=\"\n",
        "M19.6719 64.7969\n",
        "L19.6719 37.4062\n",
        "L32.0781 37.4062\n",
        "Q38.9688 37.4062 42.7188 40.9688\n",
        "Q46.4844 44.5312 46.4844 51.125\n",
        "Q46.4844 57.6719 42.7188 61.2344\n",
        "Q38.9688 64.7969 32.0781 64.7969\n",
        "z\n",
        "\n",
        "M9.8125 72.9062\n",
        "L32.0781 72.9062\n",
        "Q44.3438 72.9062 50.6094 67.3594\n",
        "Q56.8906 61.8125 56.8906 51.125\n",
        "Q56.8906 40.3281 50.6094 34.8125\n",
        "Q44.3438 29.2969 32.0781 29.2969\n",
        "L19.6719 29.2969\n",
        "L19.6719 0\n",
        "L9.8125 0\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-50\"/>\n",
        "    </defs>\n",
        "    <g transform=\"translate(29.44875 16.318125)scale(0.12 -0.12)\">\n",
        "     <use xlink:href=\"#BitstreamVeraSans-Roman-50\"/>\n",
        "     <use x=\"58.552734375\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"97.416015625\" xlink:href=\"#BitstreamVeraSans-Roman-65\"/>\n",
        "     <use x=\"158.939453125\" xlink:href=\"#BitstreamVeraSans-Roman-64\"/>\n",
        "     <use x=\"222.416015625\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"250.19921875\" xlink:href=\"#BitstreamVeraSans-Roman-63\"/>\n",
        "     <use x=\"305.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-74\"/>\n",
        "     <use x=\"344.388671875\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"372.171875\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"433.353515625\" xlink:href=\"#BitstreamVeraSans-Roman-6e\"/>\n",
        "     <use x=\"496.732421875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"528.51953125\" xlink:href=\"#BitstreamVeraSans-Roman-64\"/>\n",
        "     <use x=\"591.99609375\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"619.779296875\" xlink:href=\"#BitstreamVeraSans-Roman-73\"/>\n",
        "     <use x=\"671.87890625\" xlink:href=\"#BitstreamVeraSans-Roman-74\"/>\n",
        "     <use x=\"711.087890625\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"752.201171875\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"779.984375\" xlink:href=\"#BitstreamVeraSans-Roman-62\"/>\n",
        "     <use x=\"843.4609375\" xlink:href=\"#BitstreamVeraSans-Roman-75\"/>\n",
        "     <use x=\"906.83984375\" xlink:href=\"#BitstreamVeraSans-Roman-74\"/>\n",
        "     <use x=\"946.048828125\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"973.83203125\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"1035.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-6e\"/>\n",
        "     <use x=\"1098.392578125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"1130.1796875\" xlink:href=\"#BitstreamVeraSans-Roman-66\"/>\n",
        "     <use x=\"1165.384765625\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"1226.56640625\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"1267.6796875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"1299.466796875\" xlink:href=\"#BitstreamVeraSans-Roman-64\"/>\n",
        "     <use x=\"1362.943359375\" xlink:href=\"#BitstreamVeraSans-Roman-65\"/>\n",
        "     <use x=\"1424.466796875\" xlink:href=\"#BitstreamVeraSans-Roman-63\"/>\n",
        "     <use x=\"1479.447265625\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"1507.23046875\" xlink:href=\"#BitstreamVeraSans-Roman-6d\"/>\n",
        "     <use x=\"1604.642578125\" xlink:href=\"#BitstreamVeraSans-Roman-61\"/>\n",
        "     <use x=\"1665.921875\" xlink:href=\"#BitstreamVeraSans-Roman-6c\"/>\n",
        "     <use x=\"1693.705078125\" xlink:href=\"#BitstreamVeraSans-Roman-73\"/>\n",
        "     <use x=\"1745.8046875\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"1777.591796875\" xlink:href=\"#BitstreamVeraSans-Roman-66\"/>\n",
        "     <use x=\"1812.796875\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"1851.66015625\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"1912.841796875\" xlink:href=\"#BitstreamVeraSans-Roman-6d\"/>\n",
        "     <use x=\"2010.25390625\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"2042.041015625\" xlink:href=\"#BitstreamVeraSans-Roman-62\"/>\n",
        "     <use x=\"2105.517578125\" xlink:href=\"#BitstreamVeraSans-Roman-69\"/>\n",
        "     <use x=\"2133.30078125\" xlink:href=\"#BitstreamVeraSans-Roman-6e\"/>\n",
        "     <use x=\"2196.6796875\" xlink:href=\"#BitstreamVeraSans-Roman-61\"/>\n",
        "     <use x=\"2257.958984375\" xlink:href=\"#BitstreamVeraSans-Roman-72\"/>\n",
        "     <use x=\"2299.072265625\" xlink:href=\"#BitstreamVeraSans-Roman-79\"/>\n",
        "     <use x=\"2358.251953125\" xlink:href=\"#BitstreamVeraSans-Roman-20\"/>\n",
        "     <use x=\"2390.0390625\" xlink:href=\"#BitstreamVeraSans-Roman-63\"/>\n",
        "     <use x=\"2445.01953125\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"2506.201171875\" xlink:href=\"#BitstreamVeraSans-Roman-64\"/>\n",
        "     <use x=\"2569.677734375\" xlink:href=\"#BitstreamVeraSans-Roman-65\"/>\n",
        "     <use x=\"2631.201171875\" xlink:href=\"#BitstreamVeraSans-Roman-73\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "  </g>\n",
        " </g>\n",
        " <defs>\n",
        "  <clipPath id=\"pef37260a9e\">\n",
        "   <rect height=\"223.2\" width=\"223.2\" x=\"78.553125\" y=\"32.478125\"/>\n",
        "  </clipPath>\n",
        " </defs>\n",
        "</svg>\n"
       ],
       "text": [
        "<matplotlib.figure.Figure at 0x1147d6d30>"
       ]
      }
     ],
     "prompt_number": 32
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def update_step(data, step):\n",
      "        data[step,:,:] = data[step-1,:,:]\n",
      "        data[step,:,0] += 1\n",
      "        for stream in range(data.shape[1]):\n",
      "            if data[step,stream,0] > 1:\n",
      "                data[step,stream,0] = 0\n",
      "                data[step,stream,1] += 1\n",
      "                if data[step,stream,1] > 1:\n",
      "                    data[step,stream,1] = 0\n",
      "                    data[step,stream,2] += 1\n",
      "                    if data[step,stream,2] > 1:\n",
      "                        data[step,stream,2] = 0\n",
      "            if data[step,stream,1] > 1:\n",
      "                data[step,stream,1] = 0\n",
      "                data[step,stream,2] += 1\n",
      "                if data[step,stream,2] > 1:\n",
      "                    data[step,stream,2] = 0\n",
      "            if data[step,stream,2] > 1:\n",
      "                data[step,stream,2] = 0"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 43
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def binary_addition_data(TIMESTEPS = 20,\n",
      "                         DIFFERENT_OBSERVABLES = 3,\n",
      "                         OBSERVATION_DIMENSIONS = 3,\n",
      "                         NOISE_SIZE = 0.03):\n",
      "\n",
      "    recurrent_data = np.zeros([TIMESTEPS, DIFFERENT_OBSERVABLES, OBSERVATION_DIMENSIONS], dtype=np.float32)\n",
      "\n",
      "    start_step = np.random.randint(0, 1, size=(DIFFERENT_OBSERVABLES, OBSERVATION_DIMENSIONS))\n",
      "\n",
      "    def update_step(data, step):\n",
      "        data[step,:,:] = data[step-1,:,:]\n",
      "        data[step,:,0] += 1\n",
      "        for stream in range(data.shape[1]):\n",
      "            if data[step,stream,0] > 1:\n",
      "                data[step,stream,0] = 0\n",
      "                data[step,stream,1] += 1\n",
      "                if data[step,stream,1] > 1:\n",
      "                    data[step,stream,1] = 0\n",
      "                    data[step,stream,2] += 1\n",
      "                    if data[step,stream,2] > 1:\n",
      "                        data[step,stream,2] = 0\n",
      "            if data[step,stream,1] > 1:\n",
      "                data[step,stream,1] = 0\n",
      "                data[step,stream,2] += 1\n",
      "                if data[step,stream,2] > 1:\n",
      "                    data[step,stream,2] = 0\n",
      "            if data[step,stream,2] > 1:\n",
      "                data[step,stream,2] = 0\n",
      "    \n",
      "    recurrent_data[0,:,:] = start_step\n",
      "    for i in range(1, TIMESTEPS):\n",
      "        update_step(recurrent_data, i)\n",
      "    \n",
      "    noisy_data = recurrent_data + NOISE_SIZE * np.random.standard_normal(recurrent_data.shape).astype(np.float32)\n",
      "    return noisy_data, recurrent_data\n",
      "\n",
      "def one_trick_pony(network, temporal=False):\n",
      "    print(\"Simple binary additions using network:\")\n",
      "    for num in range(0, 6):\n",
      "        bin_repr = np.binary_repr(num)[::-1][:3]\n",
      "        if len(bin_repr) < 3:\n",
      "            bin_repr = bin_repr + (3 - len(bin_repr)) * \"0\"\n",
      "        if temporal:\n",
      "            bin_repr = np.array([[list(bin_repr)]])\n",
      "        else:\n",
      "            bin_repr = np.array([list(bin_repr)])\n",
      "        print(\"%d + 1 ~= %d\" % (num, sum(2 ** k if i > 0 else 0. for k, i in enumerate(network.activate(bin_repr)[0].round()))))\n",
      "\n",
      "\n",
      "def test_reccurent_net():\n",
      "    \n",
      "    # Binary addition problem\n",
      "\n",
      "    TIMESTEPS = 20\n",
      "    DIFFERENT_OBSERVABLES = 3\n",
      "    OBSERVATION_DIMENSIONS = 3\n",
      "    NOISE_SIZE = 0.03\n",
      "\n",
      "    noisy_data, recurrent_data = binary_addition_data(TIMESTEPS,\n",
      "                                                      DIFFERENT_OBSERVABLES,\n",
      "                                                      OBSERVATION_DIMENSIONS,\n",
      "                                                      NOISE_SIZE)\n",
      "    \n",
      "    HIDDEN_DIMENSIONS = 8\n",
      "\n",
      "    net = Network()\n",
      "    \n",
      "    input_layer = LinearLayer(OBSERVATION_DIMENSIONS, HIDDEN_DIMENSIONS)\n",
      "    activ_layer = ActivationLayer(TanhNeuron)\n",
      "    prediction_layer = LinearLayer(HIDDEN_DIMENSIONS, OBSERVATION_DIMENSIONS)\n",
      "    output_layer = ActivationLayer(LogisticNeuron)\n",
      "    \n",
      "    input_layer.connect_to(activ_layer)\n",
      "    activ_layer.connect_to(prediction_layer)\n",
      "    prediction_layer.connect_to(output_layer)\n",
      "    \n",
      "    temporal_loop = LoopLayer(OBSERVATION_DIMENSIONS, input_layer)\n",
      "    \n",
      "    slice_layer = SliceLayer((-1,-1))\n",
      "    temporal_loop.connect_to(slice_layer)\n",
      "\n",
      "    net.add_layer(temporal_loop, input=True)\n",
      "    net.add_layer(slice_layer, output=True)\n",
      "    net.set_error(BinaryCrossEntropy)\n",
      "    net.activate(noisy_data[:-1,:,:])\n",
      "    \n",
      "    net.backpropagate(recurrent_data[-1,:,:].astype(np.int32))\n",
      "    print(\"Backpropagation Through Time OK\")\n",
      "\n",
      "    for gparam, param in zip(net.get_gradients(), net.get_parameters()):\n",
      "        assert(gparam.shape == param.shape), \"Weight updates are not the same size\"\n",
      "        \n",
      "    print(\"Updates and parameters shapes OK\")\n",
      "    \n",
      "    trainer = Trainer(net, method=\"adadelta\", rho=0.95)\n",
      "    print(\"Trainer OK\")\n",
      "    epochs = 5000\n",
      "    subepochs = 10\n",
      "    \n",
      "    print(\"before we start, here's the network's view of addition:\")\n",
      "    \n",
      "    one_trick_pony(net, True)\n",
      "    \n",
      "    # use last time step for prediction\n",
      "    \n",
      "    # Note: if you look closely, this is a really poor\n",
      "    # example, since we are showing many useless observations\n",
      "    # and finally closing with one useful one for training\n",
      "    # and context is not useful in this instance for prediction.\n",
      "    \n",
      "    er = 0.\n",
      "    for epoch in range(epochs):\n",
      "        \n",
      "        for subepoch in range(subepochs):\n",
      "        \n",
      "            random_range_begin = np.random.randint(0, TIMESTEPS-5)\n",
      "            random_range_end = random_range_begin + 1#np.random.randint(random_range_begin+4, TIMESTEPS)\n",
      "\n",
      "            er += trainer.train(noisy_data[random_range_begin:random_range_end,:,:], recurrent_data[random_range_end,:,:].astype(np.int32))\n",
      "        \n",
      "        if epoch > 0 and epoch % 1000 == 0:\n",
      "            print(\"epoch %d, Error %.2f\" % (epoch * subepochs, er))\n",
      "            er = 0.\n",
      "\n",
      "    print(\"Training OK\")\n",
      "    \n",
      "    one_trick_pony(net, True)\n",
      "    \n",
      "    return net\n",
      "\n",
      "def test_binary_addition_net():\n",
      "    # Binary addition problem\n",
      "\n",
      "    TIMESTEPS = 200\n",
      "    DIFFERENT_OBSERVABLES = 10\n",
      "    OBSERVATION_DIMENSIONS = 3\n",
      "    NOISE_SIZE = 0.03\n",
      "\n",
      "    noisy_data, recurrent_data = binary_addition_data(TIMESTEPS,\n",
      "                                                      DIFFERENT_OBSERVABLES,\n",
      "                                                      OBSERVATION_DIMENSIONS,\n",
      "                                                      NOISE_SIZE)\n",
      "    \n",
      "    HIDDEN_DIMENSIONS = 8\n",
      "\n",
      "    net = Network()\n",
      "    \n",
      "    input_layer = LinearLayer(OBSERVATION_DIMENSIONS, HIDDEN_DIMENSIONS)\n",
      "    activ_layer = ActivationLayer(TanhNeuron)\n",
      "    prediction_layer = LinearLayer(HIDDEN_DIMENSIONS, OBSERVATION_DIMENSIONS)\n",
      "    output_layer = ActivationLayer(LogisticNeuron)\n",
      "    \n",
      "    input_layer.connect_to(activ_layer)\n",
      "    activ_layer.connect_to(prediction_layer)\n",
      "    prediction_layer.connect_to(output_layer)\n",
      "\n",
      "    net.add_layer(input_layer, input=True)\n",
      "    net.add_layer(activ_layer)\n",
      "    net.add_layer(prediction_layer)\n",
      "    net.add_layer(output_layer, output=True)\n",
      "    net.set_error(BinaryCrossEntropy)\n",
      "    net.activate(noisy_data[0,:,:])\n",
      "    \n",
      "    net.backpropagate(recurrent_data[1,:,:].astype(np.int32))\n",
      "\n",
      "    for gparam, param in zip(net.get_gradients(), net.get_parameters()):\n",
      "        assert(gparam.shape == param.shape), \"Weight updates are not the same size\"\n",
      "        \n",
      "    print(\"Updates and parameters shapes OK\")\n",
      "    \n",
      "    trainer = Trainer(net, method=\"adadelta\", rho=0.95)\n",
      "    print(\"Trainer OK\")\n",
      "    epochs = 5000\n",
      "    subepochs = 10\n",
      "    \n",
      "    print(\"before we start, here's the network's view of addition:\")\n",
      "    \n",
      "    one_trick_pony(net)\n",
      "    \n",
      "    er = 0.\n",
      "    for epoch in range(epochs):\n",
      "        \n",
      "        for subepoch in range(subepochs):\n",
      "        \n",
      "            random_range_begin = np.random.randint(0, TIMESTEPS-5)\n",
      "            random_range_end = random_range_begin +1\n",
      "\n",
      "            er += trainer.train(noisy_data[random_range_begin,:,:], recurrent_data[random_range_end,:,:].astype(np.int32))\n",
      "        \n",
      "        if epoch > 0 and epoch % 1000 == 0:\n",
      "            print(\"epoch %d, Error %.2f\" % (epoch * subepochs, er))\n",
      "            er = 0.\n",
      "\n",
      "    print(\"Training OK\")\n",
      "    \n",
      "    one_trick_pony(net)\n",
      "\n",
      "    return net"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 202
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "flat_calculator_net = test_binary_addition_net()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Updates and parameters shapes OK\n",
        "Trainer OK\n",
        "before we start, here's the network's view of addition:\n",
        "Simple binary additions using network:\n",
        "0 + 1 ~= 6\n",
        "1 + 1 ~= 6\n",
        "2 + 1 ~= 6\n",
        "3 + 1 ~= 6\n",
        "4 + 1 ~= 6\n",
        "5 + 1 ~= 6\n",
        "epoch 10000, Error 35194.14"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 20000, Error 792.28"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 30000, Error 527.60"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 40000, Error 426.45"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "Training OK"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "Simple binary additions using network:\n",
        "0 + 1 ~= 1\n",
        "1 + 1 ~= 2\n",
        "2 + 1 ~= 3\n",
        "3 + 1 ~= 4\n",
        "4 + 1 ~= 5\n",
        "5 + 1 ~= 6\n"
       ]
      }
     ],
     "prompt_number": 203
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "recurrent_net = test_reccurent_net()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Backpropagation Through Time OK\n",
        "Updates and parameters shapes OK\n",
        "Trainer OK\n",
        "before we start, here's the network's view of addition:\n",
        "Simple binary additions using network:\n",
        "0 + 1 ~= 0\n",
        "1 + 1 ~= 0\n",
        "2 + 1 ~= 0\n",
        "3 + 1 ~= 0\n",
        "4 + 1 ~= 0\n",
        "5 + 1 ~= 0\n",
        "epoch 10000, Error 12438.66"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 20000, Error 701.64"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 30000, Error 329.03"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "epoch 40000, Error 251.96"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "Training OK"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "Simple binary additions using network:\n",
        "0 + 1 ~= 1\n",
        "1 + 1 ~= 2\n",
        "2 + 1 ~= 3\n",
        "3 + 1 ~= 4\n",
        "4 + 1 ~= 5\n",
        "5 + 1 ~= 6\n"
       ]
      }
     ],
     "prompt_number": 200
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## Drawing the network"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "net = Network()\n",
      "first_layer = Layer(3, neuron=TanhNeuron)\n",
      "net.add_layer(first_layer, input=True)\n",
      "second_layer = Layer(5, 2, neuron=SoftmaxNeuron)\n",
      "net.add_layer(second_layer, output=True)\n",
      "first_layer.connect_to(second_layer)\n",
      "cython_lstm.network_viewer.draw(net)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "svg": [
        "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
        "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
        "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
        "<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
        "<svg height=\"390pt\" version=\"1.1\" viewBox=\"0 0 596 390\" width=\"596pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
        " <defs>\n",
        "  <style type=\"text/css\">\n",
        "*{stroke-linecap:butt;stroke-linejoin:round;}\n",
        "  </style>\n",
        " </defs>\n",
        " <g id=\"figure_1\">\n",
        "  <g id=\"patch_1\">\n",
        "   <path d=\"\n",
        "M0 390.565\n",
        "L596.308 390.565\n",
        "L596.308 0\n",
        "L0 0\n",
        "z\n",
        "\" style=\"fill:none;\"/>\n",
        "  </g>\n",
        "  <g id=\"axes_1\">\n",
        "   <g id=\"LineCollection_1\">\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M116.959 -255.238\n",
        "L302.959 -54.3581\" id=\"C0_0_cd23a87968\"/>\n",
        "     <path d=\"\n",
        "M116.959 -255.238\n",
        "L302.959 -322.198\" id=\"C0_1_b3d9cfea5f\"/>\n",
        "     <path d=\"\n",
        "M116.959 -255.238\n",
        "L302.959 -188.278\" id=\"C0_2_3ef019cba7\"/>\n",
        "     <path d=\"\n",
        "M116.959 -255.238\n",
        "L302.959 -121.318\" id=\"C0_3_f26cf4573f\"/>\n",
        "     <path d=\"\n",
        "M116.959 -255.238\n",
        "L302.959 -255.238\" id=\"C0_4_333e3d9b26\"/>\n",
        "     <path d=\"\n",
        "M302.959 -322.198\n",
        "L488.959 -154.798\" id=\"C0_5_cf7c3f4454\"/>\n",
        "     <path d=\"\n",
        "M302.959 -322.198\n",
        "L488.959 -221.758\" id=\"C0_6_15fc0afe1c\"/>\n",
        "     <path d=\"\n",
        "M116.959 -121.318\n",
        "L302.959 -54.3581\" id=\"C0_7_1c8e1037c0\"/>\n",
        "     <path d=\"\n",
        "M116.959 -121.318\n",
        "L302.959 -322.198\" id=\"C0_8_96be103a71\"/>\n",
        "     <path d=\"\n",
        "M116.959 -121.318\n",
        "L302.959 -188.278\" id=\"C0_9_0235f8ab64\"/>\n",
        "     <path d=\"\n",
        "M116.959 -121.318\n",
        "L302.959 -121.318\" id=\"C0_a_2c0e2ba130\"/>\n",
        "     <path d=\"\n",
        "M116.959 -121.318\n",
        "L302.959 -255.238\" id=\"C0_b_8bbf06a76e\"/>\n",
        "     <path d=\"\n",
        "M302.959 -255.238\n",
        "L488.959 -154.798\" id=\"C0_c_f45caa6c6b\"/>\n",
        "     <path d=\"\n",
        "M302.959 -255.238\n",
        "L488.959 -221.758\" id=\"C0_d_f68b01d5c7\"/>\n",
        "     <path d=\"\n",
        "M116.959 -188.278\n",
        "L302.959 -54.3581\" id=\"C0_e_39239fe5c1\"/>\n",
        "     <path d=\"\n",
        "M116.959 -188.278\n",
        "L302.959 -322.198\" id=\"C0_f_298a39e6eb\"/>\n",
        "     <path d=\"\n",
        "M116.959 -188.278\n",
        "L302.959 -188.278\" id=\"C0_10_ea96e4cb00\"/>\n",
        "     <path d=\"\n",
        "M116.959 -188.278\n",
        "L302.959 -121.318\" id=\"C0_11_af7107c373\"/>\n",
        "     <path d=\"\n",
        "M116.959 -188.278\n",
        "L302.959 -255.238\" id=\"C0_12_7fd0333333\"/>\n",
        "     <path d=\"\n",
        "M302.959 -54.3581\n",
        "L488.959 -154.798\" id=\"C0_13_65349f3b80\"/>\n",
        "     <path d=\"\n",
        "M302.959 -54.3581\n",
        "L488.959 -221.758\" id=\"C0_14_f59ac514ca\"/>\n",
        "     <path d=\"\n",
        "M302.959 -121.318\n",
        "L488.959 -154.798\" id=\"C0_15_d7c523507b\"/>\n",
        "     <path d=\"\n",
        "M302.959 -121.318\n",
        "L488.959 -221.758\" id=\"C0_16_5e5c28d869\"/>\n",
        "     <path d=\"\n",
        "M302.959 -188.278\n",
        "L488.959 -154.798\" id=\"C0_17_0f8ab510d4\"/>\n",
        "     <path d=\"\n",
        "M302.959 -188.278\n",
        "L488.959 -221.758\" id=\"C0_18_cf6a36e05c\"/>\n",
        "    </defs>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_0_cd23a87968\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_1_b3d9cfea5f\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_2_3ef019cba7\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_3_f26cf4573f\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_4_333e3d9b26\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_5_cf7c3f4454\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_6_15fc0afe1c\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_7_1c8e1037c0\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_8_96be103a71\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_9_0235f8ab64\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_a_2c0e2ba130\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_b_8bbf06a76e\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_c_f45caa6c6b\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_d_f68b01d5c7\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_e_39239fe5c1\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_f_298a39e6eb\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_10_ea96e4cb00\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_11_af7107c373\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_12_7fd0333333\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_13_65349f3b80\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_14_f59ac514ca\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_15_d7c523507b\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_16_5e5c28d869\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_17_0f8ab510d4\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;\" x=\"0.0\" xlink:href=\"#C0_18_cf6a36e05c\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"LineCollection_2\">\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M256.459 -104.578\n",
        "L302.959 -54.3581\" id=\"C1_0_49f7dbbf82\"/>\n",
        "     <path d=\"\n",
        "M256.459 -305.458\n",
        "L302.959 -322.198\" id=\"C1_1_5db2b20580\"/>\n",
        "     <path d=\"\n",
        "M256.459 -205.018\n",
        "L302.959 -188.278\" id=\"C1_2_1ca21969d1\"/>\n",
        "     <path d=\"\n",
        "M256.459 -154.798\n",
        "L302.959 -121.318\" id=\"C1_3_448f32df6b\"/>\n",
        "     <path d=\"\n",
        "M256.459 -255.238\n",
        "L302.959 -255.238\" id=\"C1_4_72c4d01ee3\"/>\n",
        "     <path d=\"\n",
        "M442.459 -196.648\n",
        "L488.959 -154.798\" id=\"C1_5_d5013db193\"/>\n",
        "     <path d=\"\n",
        "M442.459 -246.868\n",
        "L488.959 -221.758\" id=\"C1_6_d92524c114\"/>\n",
        "     <path d=\"\n",
        "M256.459 -71.0981\n",
        "L302.959 -54.3581\" id=\"C1_7_c7d339834f\"/>\n",
        "     <path d=\"\n",
        "M256.459 -271.978\n",
        "L302.959 -322.198\" id=\"C1_8_095ef2f37b\"/>\n",
        "     <path d=\"\n",
        "M256.459 -171.538\n",
        "L302.959 -188.278\" id=\"C1_9_98e8fb8ffa\"/>\n",
        "     <path d=\"\n",
        "M256.459 -121.318\n",
        "L302.959 -121.318\" id=\"C1_a_bbb06ed241\"/>\n",
        "     <path d=\"\n",
        "M256.459 -221.758\n",
        "L302.959 -255.238\" id=\"C1_b_0196d42fa1\"/>\n",
        "     <path d=\"\n",
        "M442.459 -179.908\n",
        "L488.959 -154.798\" id=\"C1_c_d32caa9237\"/>\n",
        "     <path d=\"\n",
        "M442.459 -230.128\n",
        "L488.959 -221.758\" id=\"C1_d_96aaa7afb0\"/>\n",
        "     <path d=\"\n",
        "M256.459 -87.8381\n",
        "L302.959 -54.3581\" id=\"C1_e_3e2a93ffcd\"/>\n",
        "     <path d=\"\n",
        "M256.459 -288.718\n",
        "L302.959 -322.198\" id=\"C1_f_31216992aa\"/>\n",
        "     <path d=\"\n",
        "M256.459 -188.278\n",
        "L302.959 -188.278\" id=\"C1_10_2ca693ea0d\"/>\n",
        "     <path d=\"\n",
        "M256.459 -138.058\n",
        "L302.959 -121.318\" id=\"C1_11_b4bb2fcee3\"/>\n",
        "     <path d=\"\n",
        "M256.459 -238.498\n",
        "L302.959 -255.238\" id=\"C1_12_7ac28d3334\"/>\n",
        "     <path d=\"\n",
        "M442.459 -129.688\n",
        "L488.959 -154.798\" id=\"C1_13_98d7befab1\"/>\n",
        "     <path d=\"\n",
        "M442.459 -179.908\n",
        "L488.959 -221.758\" id=\"C1_14_fb7fd00b2f\"/>\n",
        "     <path d=\"\n",
        "M442.459 -146.428\n",
        "L488.959 -154.798\" id=\"C1_15_1ba6fd98da\"/>\n",
        "     <path d=\"\n",
        "M442.459 -196.648\n",
        "L488.959 -221.758\" id=\"C1_16_a92a87bdbd\"/>\n",
        "     <path d=\"\n",
        "M442.459 -163.168\n",
        "L488.959 -154.798\" id=\"C1_17_de3d959f58\"/>\n",
        "     <path d=\"\n",
        "M442.459 -213.388\n",
        "L488.959 -221.758\" id=\"C1_18_23c7acca22\"/>\n",
        "    </defs>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_0_49f7dbbf82\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_1_5db2b20580\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_2_1ca21969d1\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_3_448f32df6b\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_4_72c4d01ee3\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_5_d5013db193\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_6_d92524c114\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_7_c7d339834f\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_8_095ef2f37b\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_9_98e8fb8ffa\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_a_bbb06ed241\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_b_0196d42fa1\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_c_d32caa9237\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_d_96aaa7afb0\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_e_3e2a93ffcd\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_f_31216992aa\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_10_2ca693ea0d\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_11_b4bb2fcee3\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_12_7ac28d3334\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_13_98d7befab1\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_14_fb7fd00b2f\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_15_1ba6fd98da\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_16_a92a87bdbd\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_17_de3d959f58\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:none;stroke:#000000;stroke-opacity:0.7;stroke-width:4.0;\" x=\"0.0\" xlink:href=\"#C1_18_23c7acca22\" y=\"390.5645625\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"PathCollection_1\">\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M0 13.2288\n",
        "C3.50831 13.2288 6.8734 11.8349 9.35414 9.35414\n",
        "C11.8349 6.8734 13.2288 3.50831 13.2288 0\n",
        "C13.2288 -3.50831 11.8349 -6.8734 9.35414 -9.35414\n",
        "C6.8734 -11.8349 3.50831 -13.2288 0 -13.2288\n",
        "C-3.50831 -13.2288 -6.8734 -11.8349 -9.35414 -9.35414\n",
        "C-11.8349 -6.8734 -13.2288 -3.50831 -13.2288 0\n",
        "C-13.2288 3.50831 -11.8349 6.8734 -9.35414 9.35414\n",
        "C-6.8734 11.8349 -3.50831 13.2288 0 13.2288\n",
        "z\n",
        "\" id=\"m1871373eb7\" style=\"stroke:#000000;\"/>\n",
        "    </defs>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:#66ffff;stroke:#000000;\" x=\"116.959375\" xlink:href=\"#m1871373eb7\" y=\"135.3264375\"/>\n",
        "     <use style=\"fill:#66ffff;stroke:#000000;\" x=\"116.959375\" xlink:href=\"#m1871373eb7\" y=\"202.2864375\"/>\n",
        "     <use style=\"fill:#66ffff;stroke:#000000;\" x=\"116.959375\" xlink:href=\"#m1871373eb7\" y=\"269.2464375\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"PathCollection_2\">\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M0 13.2288\n",
        "C3.50831 13.2288 6.8734 11.8349 9.35414 9.35414\n",
        "C11.8349 6.8734 13.2288 3.50831 13.2288 0\n",
        "C13.2288 -3.50831 11.8349 -6.8734 9.35414 -9.35414\n",
        "C6.8734 -11.8349 3.50831 -13.2288 0 -13.2288\n",
        "C-3.50831 -13.2288 -6.8734 -11.8349 -9.35414 -9.35414\n",
        "C-11.8349 -6.8734 -13.2288 -3.50831 -13.2288 0\n",
        "C-13.2288 3.50831 -11.8349 6.8734 -9.35414 9.35414\n",
        "C-6.8734 11.8349 -3.50831 13.2288 0 13.2288\n",
        "z\n",
        "\" id=\"m6ac92aa3f3\" style=\"stroke:#000000;\"/>\n",
        "    </defs>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:#ffff99;stroke:#000000;\" x=\"302.959375\" xlink:href=\"#m6ac92aa3f3\" y=\"68.3664375\"/>\n",
        "     <use style=\"fill:#ffff99;stroke:#000000;\" x=\"302.959375\" xlink:href=\"#m6ac92aa3f3\" y=\"135.3264375\"/>\n",
        "     <use style=\"fill:#ffff99;stroke:#000000;\" x=\"302.959375\" xlink:href=\"#m6ac92aa3f3\" y=\"202.2864375\"/>\n",
        "     <use style=\"fill:#ffff99;stroke:#000000;\" x=\"302.959375\" xlink:href=\"#m6ac92aa3f3\" y=\"269.2464375\"/>\n",
        "     <use style=\"fill:#ffff99;stroke:#000000;\" x=\"302.959375\" xlink:href=\"#m6ac92aa3f3\" y=\"336.2064375\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"PathCollection_3\">\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M0 10.8397\n",
        "C2.87473 10.8397 5.63211 9.6976 7.66485 7.66485\n",
        "C9.6976 5.63211 10.8397 2.87473 10.8397 0\n",
        "C10.8397 -2.87473 9.6976 -5.63211 7.66485 -7.66485\n",
        "C5.63211 -9.6976 2.87473 -10.8397 0 -10.8397\n",
        "C-2.87473 -10.8397 -5.63211 -9.6976 -7.66485 -7.66485\n",
        "C-9.6976 -5.63211 -10.8397 -2.87473 -10.8397 0\n",
        "C-10.8397 2.87473 -9.6976 5.63211 -7.66485 7.66485\n",
        "C-5.63211 9.6976 -2.87473 10.8397 0 10.8397\n",
        "z\n",
        "\" id=\"m2129dfbaf7\" style=\"stroke:#000000;\"/>\n",
        "    </defs>\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <use style=\"fill:#f2276e;stroke:#000000;\" x=\"488.959375\" xlink:href=\"#m2129dfbaf7\" y=\"168.8064375\"/>\n",
        "     <use style=\"fill:#f2276e;stroke:#000000;\" x=\"488.959375\" xlink:href=\"#m2129dfbaf7\" y=\"235.7664375\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_1\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $X_{0}$ -->\n",
        "     <defs>\n",
        "      <path d=\"\n",
        "M25 -2.20312\n",
        "Q12.75 -2.20312 8.32812 7.875\n",
        "Q3.90625 17.9688 3.90625 31.8906\n",
        "Q3.90625 40.5781 5.48438 48.2344\n",
        "Q7.07812 55.9062 11.7812 61.25\n",
        "Q16.5 66.6094 25 66.6094\n",
        "Q31.5938 66.6094 35.7812 63.375\n",
        "Q39.9844 60.1562 42.1875 55.0469\n",
        "Q44.3906 49.9531 45.1875 44.1094\n",
        "Q46 38.2812 46 31.8906\n",
        "Q46 23.2969 44.4062 15.7969\n",
        "Q42.8281 8.29688 38.1875 3.04688\n",
        "Q33.5469 -2.20312 25 -2.20312\n",
        "M25 0.390625\n",
        "Q30.5625 0.390625 33.2969 6.09375\n",
        "Q36.0312 11.8125 36.6719 18.75\n",
        "Q37.3125 25.6875 37.3125 33.5\n",
        "Q37.3125 41.0156 36.6719 47.3594\n",
        "Q36.0312 53.7188 33.3125 58.8594\n",
        "Q30.6094 64.0156 25 64.0156\n",
        "Q19.3438 64.0156 16.6094 58.8281\n",
        "Q13.875 53.6562 13.2344 47.3281\n",
        "Q12.5938 41.0156 12.5938 33.5\n",
        "Q12.5938 27.9375 12.8594 23\n",
        "Q13.1406 18.0625 14.3125 12.8125\n",
        "Q15.4844 7.5625 18.0938 3.96875\n",
        "Q20.7031 0.390625 25 0.390625\" id=\"Cmr10-30\"/>\n",
        "      <path d=\"\n",
        "M3.60938 0\n",
        "Q2.59375 0 2.59375 1.3125\n",
        "Q2.64062 1.5625 2.8125 2.1875\n",
        "Q2.98438 2.82812 3.25 3.17188\n",
        "Q3.51562 3.51562 4 3.51562\n",
        "Q13.0938 3.51562 19.5781 10.2969\n",
        "Q19.6719 10.4062 19.7969 10.4531\n",
        "Q19.9219 10.5 19.9219 10.5\n",
        "L41.7969 34.0781\n",
        "L29.8906 62.7969\n",
        "Q28.8594 64.1094 26.5625 64.4531\n",
        "Q24.2656 64.7969 21.1875 64.7969\n",
        "Q20.2188 64.7969 20.2188 66.1094\n",
        "Q20.5625 67.3906 20.75 67.8438\n",
        "Q20.9531 68.3125 21.9219 68.3125\n",
        "L46.9219 68.3125\n",
        "Q47.9062 68.3125 47.9062 67\n",
        "Q47.8594 66.75 47.6875 66.1094\n",
        "Q47.5156 65.4844 47.2344 65.1406\n",
        "Q46.9688 64.7969 46.4844 64.7969\n",
        "Q44.625 64.7969 42.6406 64.1875\n",
        "Q40.6719 63.5781 39.8906 62.2031\n",
        "L48.4844 41.5\n",
        "L64.8906 59.0781\n",
        "Q65.0469 59.4219 65.5781 60.2812\n",
        "Q66.1094 61.1406 66.1094 61.9219\n",
        "Q66.1094 63.375 64.8438 64.0781\n",
        "Q63.5781 64.7969 61.8125 64.7969\n",
        "Q60.7969 64.7969 60.7969 66.1094\n",
        "Q61.1406 67.3906 61.3281 67.8438\n",
        "Q61.5312 68.3125 62.5 68.3125\n",
        "L84.1875 68.3125\n",
        "Q84.7188 68.3125 84.9531 67.9219\n",
        "Q85.2031 67.5312 85.2031 67\n",
        "Q85.1562 66.75 85 66.1562\n",
        "Q84.8594 65.5781 84.6094 65.1875\n",
        "Q84.375 64.7969 83.8906 64.7969\n",
        "Q79.25 64.7969 75.3594 63.1094\n",
        "Q71.4844 61.4219 68.2188 58.0156\n",
        "Q68.1719 57.9531 68.0938 57.9219\n",
        "Q68.0156 57.9062 67.9219 57.8125\n",
        "L49.8125 38.2812\n",
        "L63.4844 5.51562\n",
        "Q65.0938 3.51562 72.2188 3.51562\n",
        "Q73.1875 3.51562 73.1875 2.20312\n",
        "Q72.8594 0.875 72.625 0.4375\n",
        "Q72.4062 0 71.4844 0\n",
        "L46.4844 0\n",
        "Q45.5156 0 45.5156 1.3125\n",
        "Q45.5625 1.5625 45.7031 2.17188\n",
        "Q45.8438 2.78125 46.1094 3.14062\n",
        "Q46.3906 3.51562 46.7812 3.51562\n",
        "Q48.7344 3.51562 50.7344 4.125\n",
        "Q52.7344 4.73438 53.5156 6.10938\n",
        "L43.1094 31\n",
        "L22.9062 9.1875\n",
        "Q22.75 8.84375 22.2188 8\n",
        "Q21.6875 7.17188 21.6875 6.39062\n",
        "Q21.6875 4.9375 23.0469 4.21875\n",
        "Q24.4219 3.51562 25.9844 3.51562\n",
        "Q27 3.51562 27 2.20312\n",
        "Q26.6562 0.78125 26.4531 0.390625\n",
        "Q26.2656 0 25.2969 0\n",
        "z\n",
        "\" id=\"Cmmi10-58\"/>\n",
        "     </defs>\n",
        "     <g transform=\"translate(108.699375 138.1964375)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.6875)\" xlink:href=\"#Cmmi10-58\"/>\n",
        "      <use transform=\"translate(82.8125 -24.821875000000006)scale(0.7)\" xlink:href=\"#Cmr10-30\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_2\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $O_{1}$ -->\n",
        "     <defs>\n",
        "      <path d=\"\n",
        "M9.28125 0\n",
        "L9.28125 3.51562\n",
        "Q21.7812 3.51562 21.7812 6.6875\n",
        "L21.7812 59.1875\n",
        "Q16.6094 56.6875 8.6875 56.6875\n",
        "L8.6875 60.2031\n",
        "Q20.9531 60.2031 27.2031 66.6094\n",
        "L28.6094 66.6094\n",
        "Q28.9531 66.6094 29.2656 66.3281\n",
        "Q29.5938 66.0625 29.5938 65.7188\n",
        "L29.5938 6.6875\n",
        "Q29.5938 3.51562 42.0938 3.51562\n",
        "L42.0938 0\n",
        "z\n",
        "\" id=\"Cmr10-31\"/>\n",
        "      <path d=\"\n",
        "M30.4219 -2.20312\n",
        "Q22.9062 -2.20312 17.0938 1.23438\n",
        "Q11.2812 4.6875 8.125 10.8125\n",
        "Q4.98438 16.9375 4.98438 24.4219\n",
        "Q4.98438 35.2969 11.1562 46.0938\n",
        "Q17.3281 56.8906 27.4375 63.7031\n",
        "Q37.5469 70.5156 48.5781 70.5156\n",
        "Q54.2969 70.5156 59.0312 68.4531\n",
        "Q63.7656 66.4062 67.0312 62.7656\n",
        "Q70.3125 59.125 72.0938 54.2344\n",
        "Q73.875 49.3594 73.875 43.6094\n",
        "Q73.875 35.3594 70.3594 27.1719\n",
        "Q66.8438 19 60.6094 12.2812\n",
        "Q54.3906 5.5625 46.625 1.67188\n",
        "Q38.875 -2.20312 30.4219 -2.20312\n",
        "M31.2031 0.78125\n",
        "Q38.4844 0.78125 44.7812 5.39062\n",
        "Q51.0781 10.0156 55.5156 17.3125\n",
        "Q59.9688 24.6094 62.3281 32.6406\n",
        "Q64.7031 40.6719 64.7031 47.6094\n",
        "Q64.7031 53.0312 62.8438 57.5469\n",
        "Q60.9844 62.0625 57.125 64.8125\n",
        "Q53.2656 67.5781 47.9062 67.5781\n",
        "Q42.625 67.5781 37.6406 65.0312\n",
        "Q32.6719 62.5 28.6094 58.2969\n",
        "Q24.4688 54.0469 21.2344 47.7656\n",
        "Q18.0156 41.5 16.3594 34.5938\n",
        "Q14.7031 27.6875 14.7031 21.5781\n",
        "Q14.7031 13.0938 18.875 6.9375\n",
        "Q23.0469 0.78125 31.2031 0.78125\" id=\"Cmmi10-4f\"/>\n",
        "     </defs>\n",
        "     <g transform=\"translate(481.119375 238.9164375)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.484375)\" xlink:href=\"#Cmmi10-4f\"/>\n",
        "      <use transform=\"translate(76.220703125 -25.025000000000006)scale(0.7)\" xlink:href=\"#Cmr10-31\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_3\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $Y_{0}$ -->\n",
        "     <defs>\n",
        "      <path d=\"\n",
        "M8.89062 1.3125\n",
        "Q8.9375 1.5625 9.07812 2.14062\n",
        "Q9.23438 2.73438 9.46875 3.125\n",
        "Q9.71875 3.51562 10.2031 3.51562\n",
        "Q16.3125 3.51562 18.7031 4.20312\n",
        "Q19.1875 4.34375 19.5938 4.875\n",
        "Q20.0156 5.42188 20.2656 6\n",
        "Q20.5156 6.59375 20.7031 7.17188\n",
        "L25.6875 27.2969\n",
        "L12.7969 62.7969\n",
        "Q11.9219 64.1094 9.625 64.4531\n",
        "Q7.32812 64.7969 4.29688 64.7969\n",
        "Q3.32812 64.7969 3.32812 66.1094\n",
        "Q3.60938 67.3281 3.85938 67.8125\n",
        "Q4.10938 68.3125 4.98438 68.3125\n",
        "L30.1719 68.3125\n",
        "Q31.1094 68.3125 31.1094 67\n",
        "Q30.7188 64.7969 29.7812 64.7969\n",
        "Q22.7031 64.7969 22.7031 62.5938\n",
        "L33.9844 31.7812\n",
        "L57.625 59.0781\n",
        "Q57.8125 59.5781 58.2969 60.2812\n",
        "Q58.7969 60.9844 59.0312 61.4688\n",
        "Q59.2812 61.9688 59.2812 62.5938\n",
        "Q59.2812 64.7969 55.1719 64.7969\n",
        "Q54.2031 64.7969 54.2031 66.1094\n",
        "Q54.3906 66.8906 54.5156 67.3281\n",
        "Q54.6406 67.7812 54.9531 68.0469\n",
        "Q55.2812 68.3125 55.9062 68.3125\n",
        "L75.2969 68.3125\n",
        "Q75.7344 68.3125 76.0156 67.875\n",
        "Q76.3125 67.4375 76.3125 67\n",
        "Q76.125 66.2656 76.0156 65.9375\n",
        "Q75.9219 65.625 75.6719 65.2031\n",
        "Q75.4375 64.7969 74.9062 64.7969\n",
        "Q70.9062 64.7969 67.3281 63.0625\n",
        "Q63.7656 61.3281 61.0781 58.2031\n",
        "Q60.9844 58.1094 60.8594 58.0312\n",
        "Q60.75 57.9531 60.5938 57.8125\n",
        "L34.1875 27.2969\n",
        "L29 6.59375\n",
        "Q29 6.34375 28.9062 5.85938\n",
        "Q28.8125 5.375 28.8125 5.07812\n",
        "Q28.8125 4.6875 28.9219 4.42188\n",
        "Q29.0469 4.15625 29.2656 4.07812\n",
        "Q29.5 4 29.9844 3.90625\n",
        "Q31.8906 3.51562 37.2031 3.51562\n",
        "Q38.1875 3.51562 38.1875 2.20312\n",
        "Q37.8438 0.78125 37.6406 0.390625\n",
        "Q37.4531 0 36.5312 0\n",
        "L9.90625 0\n",
        "Q8.89062 0 8.89062 1.3125\" id=\"Cmmi10-59\"/>\n",
        "     </defs>\n",
        "     <g transform=\"translate(296.379375 71.2364375)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.6875)\" xlink:href=\"#Cmmi10-59\"/>\n",
        "      <use transform=\"translate(58.0078125 -24.821875000000006)scale(0.7)\" xlink:href=\"#Cmr10-30\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_4\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $O_{0}$ -->\n",
        "     <g transform=\"translate(481.119375 171.8164375)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.484375)\" xlink:href=\"#Cmmi10-4f\"/>\n",
        "      <use transform=\"translate(76.220703125 -25.025000000000006)scale(0.7)\" xlink:href=\"#Cmr10-30\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_5\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $X_{2}$ -->\n",
        "     <defs>\n",
        "      <path d=\"\n",
        "M4.98438 0\n",
        "L4.98438 2.6875\n",
        "Q4.98438 2.9375 5.17188 3.21875\n",
        "L20.7031 20.4062\n",
        "Q24.2188 24.2188 26.4062 26.7969\n",
        "Q28.6094 29.3906 30.75 32.7656\n",
        "Q32.9062 36.1406 34.1562 39.625\n",
        "Q35.4062 43.1094 35.4062 47.0156\n",
        "Q35.4062 51.125 33.8906 54.8594\n",
        "Q32.375 58.5938 29.375 60.8438\n",
        "Q26.375 63.0938 22.125 63.0938\n",
        "Q17.7812 63.0938 14.3125 60.4688\n",
        "Q10.8438 57.8594 9.42188 53.7188\n",
        "Q9.8125 53.8125 10.5 53.8125\n",
        "Q12.75 53.8125 14.3281 52.2969\n",
        "Q15.9219 50.7812 15.9219 48.3906\n",
        "Q15.9219 46.0938 14.3281 44.5\n",
        "Q12.75 42.9219 10.5 42.9219\n",
        "Q8.15625 42.9219 6.5625 44.5469\n",
        "Q4.98438 46.1875 4.98438 48.3906\n",
        "Q4.98438 52.1562 6.39062 55.4375\n",
        "Q7.8125 58.7344 10.4688 61.2969\n",
        "Q13.1406 63.875 16.4844 65.2344\n",
        "Q19.8281 66.6094 23.5781 66.6094\n",
        "Q29.2969 66.6094 34.2188 64.1875\n",
        "Q39.1562 61.7656 42.0312 57.3438\n",
        "Q44.9219 52.9375 44.9219 47.0156\n",
        "Q44.9219 42.6719 43.0156 38.7656\n",
        "Q41.1094 34.8594 38.125 31.6562\n",
        "Q35.1562 28.4688 30.5156 24.4062\n",
        "Q25.875 20.3594 24.4219 19\n",
        "L13.0938 8.10938\n",
        "L22.7031 8.10938\n",
        "Q29.7812 8.10938 34.5469 8.21875\n",
        "Q39.3125 8.34375 39.5938 8.59375\n",
        "Q40.7656 9.85938 42 17.8281\n",
        "L44.9219 17.8281\n",
        "L42.0938 0\n",
        "z\n",
        "\" id=\"Cmr10-32\"/>\n",
        "     </defs>\n",
        "     <g transform=\"translate(108.699375 272.381125)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.6875)\" xlink:href=\"#Cmmi10-58\"/>\n",
        "      <use transform=\"translate(82.8125 -24.821875000000006)scale(0.7)\" xlink:href=\"#Cmr10-32\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_6\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $Y_{1}$ -->\n",
        "     <g transform=\"translate(296.379375 138.461125)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.6875)\" xlink:href=\"#Cmmi10-59\"/>\n",
        "      <use transform=\"translate(58.0078125 -24.821875000000006)scale(0.7)\" xlink:href=\"#Cmr10-31\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_7\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $X_{1}$ -->\n",
        "     <g transform=\"translate(108.699375 205.421125)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.6875)\" xlink:href=\"#Cmmi10-58\"/>\n",
        "      <use transform=\"translate(82.8125 -24.821875000000006)scale(0.7)\" xlink:href=\"#Cmr10-31\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_8\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $Y_{4}$ -->\n",
        "     <defs>\n",
        "      <path d=\"\n",
        "M2.78125 16.5\n",
        "L2.78125 20.0156\n",
        "L33.6875 66.1094\n",
        "Q34.0312 66.6094 34.7188 66.6094\n",
        "L36.1875 66.6094\n",
        "Q37.3125 66.6094 37.3125 65.4844\n",
        "L37.3125 20.0156\n",
        "L47.125 20.0156\n",
        "L47.125 16.5\n",
        "L37.3125 16.5\n",
        "L37.3125 6.6875\n",
        "Q37.3125 4.64062 40.2344 4.07812\n",
        "Q43.1719 3.51562 47.0156 3.51562\n",
        "L47.0156 0\n",
        "L19.4844 0\n",
        "L19.4844 3.51562\n",
        "Q23.3438 3.51562 26.2656 4.07812\n",
        "Q29.2031 4.64062 29.2031 6.6875\n",
        "L29.2031 16.5\n",
        "z\n",
        "\n",
        "M6.10938 20.0156\n",
        "L29.7812 20.0156\n",
        "L29.7812 55.4219\n",
        "z\n",
        "\" id=\"Cmr10-34\"/>\n",
        "     </defs>\n",
        "     <g transform=\"translate(296.379375 339.341125)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.6875)\" xlink:href=\"#Cmmi10-59\"/>\n",
        "      <use transform=\"translate(58.0078125 -24.821875000000006)scale(0.7)\" xlink:href=\"#Cmr10-34\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_9\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $Y_{3}$ -->\n",
        "     <defs>\n",
        "      <path d=\"\n",
        "M9.51562 7.71875\n",
        "Q11.8594 4.29688 15.8125 2.64062\n",
        "Q19.7812 0.984375 24.3125 0.984375\n",
        "Q30.125 0.984375 32.5625 5.9375\n",
        "Q35.0156 10.8906 35.0156 17.1875\n",
        "Q35.0156 20.0156 34.5 22.8438\n",
        "Q33.9844 25.6875 32.7656 28.125\n",
        "Q31.5469 30.5625 29.4219 32.0312\n",
        "Q27.2969 33.5 24.2188 33.5\n",
        "L17.5781 33.5\n",
        "Q16.7031 33.5 16.7031 34.4219\n",
        "L16.7031 35.2969\n",
        "Q16.7031 36.0781 17.5781 36.0781\n",
        "L23.0938 36.5312\n",
        "Q26.6094 36.5312 28.9219 39.1562\n",
        "Q31.25 41.7969 32.3281 45.5781\n",
        "Q33.4062 49.3594 33.4062 52.7812\n",
        "Q33.4062 57.5625 31.1562 60.6406\n",
        "Q28.9062 63.7188 24.3125 63.7188\n",
        "Q20.5156 63.7188 17.0469 62.2812\n",
        "Q13.5781 60.8438 11.5312 57.9062\n",
        "Q11.7188 57.9531 11.8594 57.9844\n",
        "Q12.0156 58.0156 12.2031 58.0156\n",
        "Q14.4531 58.0156 15.9688 56.4531\n",
        "Q17.4844 54.8906 17.4844 52.6875\n",
        "Q17.4844 50.5312 15.9688 48.9688\n",
        "Q14.4531 47.4062 12.2031 47.4062\n",
        "Q10.0156 47.4062 8.45312 48.9688\n",
        "Q6.89062 50.5312 6.89062 52.6875\n",
        "Q6.89062 56.9844 9.46875 60.1562\n",
        "Q12.0625 63.3281 16.1406 64.9688\n",
        "Q20.2188 66.6094 24.3125 66.6094\n",
        "Q27.3438 66.6094 30.7031 65.7031\n",
        "Q34.0781 64.7969 36.8125 63.1094\n",
        "Q39.5469 61.4219 41.2812 58.7812\n",
        "Q43.0156 56.1562 43.0156 52.7812\n",
        "Q43.0156 48.5781 41.1406 45.0156\n",
        "Q39.2656 41.4531 35.9844 38.8594\n",
        "Q32.7188 36.2812 28.8125 35.0156\n",
        "Q33.1562 34.1875 37.0625 31.7344\n",
        "Q40.9688 29.2969 43.3281 25.4844\n",
        "Q45.7031 21.6875 45.7031 17.2812\n",
        "Q45.7031 11.7656 42.6719 7.29688\n",
        "Q39.6562 2.82812 34.7188 0.3125\n",
        "Q29.7812 -2.20312 24.3125 -2.20312\n",
        "Q19.625 -2.20312 14.9062 -0.40625\n",
        "Q10.2031 1.375 7.20312 4.9375\n",
        "Q4.20312 8.5 4.20312 13.4844\n",
        "Q4.20312 15.9688 5.85938 17.625\n",
        "Q7.51562 19.2812 10.0156 19.2812\n",
        "Q11.625 19.2812 12.9688 18.5312\n",
        "Q14.3125 17.7812 15.0625 16.4062\n",
        "Q15.8281 15.0469 15.8281 13.4844\n",
        "Q15.8281 11.0312 14.1094 9.375\n",
        "Q12.4062 7.71875 10.0156 7.71875\n",
        "z\n",
        "\" id=\"Cmr10-33\"/>\n",
        "     </defs>\n",
        "     <g transform=\"translate(296.379375 272.1164375)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.6875)\" xlink:href=\"#Cmmi10-59\"/>\n",
        "      <use transform=\"translate(58.0078125 -24.821875000000006)scale(0.7)\" xlink:href=\"#Cmr10-33\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_10\">\n",
        "    <g clip-path=\"url(#p4811f8316e)\">\n",
        "     <!-- $Y_{2}$ -->\n",
        "     <g transform=\"translate(296.379375 205.421125)scale(0.14 -0.14)\">\n",
        "      <use transform=\"translate(0.0 0.6875)\" xlink:href=\"#Cmmi10-59\"/>\n",
        "      <use transform=\"translate(58.0078125 -24.821875000000006)scale(0.7)\" xlink:href=\"#Cmr10-32\"/>\n",
        "     </g>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_11\">\n",
        "    <!-- Tanh -->\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M54.8906 33.0156\n",
        "L54.8906 0\n",
        "L45.9062 0\n",
        "L45.9062 32.7188\n",
        "Q45.9062 40.4844 42.875 44.3281\n",
        "Q39.8438 48.1875 33.7969 48.1875\n",
        "Q26.5156 48.1875 22.3125 43.5469\n",
        "Q18.1094 38.9219 18.1094 30.9062\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 75.9844\n",
        "L18.1094 75.9844\n",
        "L18.1094 46.1875\n",
        "Q21.3438 51.125 25.7031 53.5625\n",
        "Q30.0781 56 35.7969 56\n",
        "Q45.2188 56 50.0469 50.1719\n",
        "Q54.8906 44.3438 54.8906 33.0156\" id=\"BitstreamVeraSans-Roman-68\"/>\n",
        "     <path d=\"\n",
        "M34.2812 27.4844\n",
        "Q23.3906 27.4844 19.1875 25\n",
        "Q14.9844 22.5156 14.9844 16.5\n",
        "Q14.9844 11.7188 18.1406 8.90625\n",
        "Q21.2969 6.10938 26.7031 6.10938\n",
        "Q34.1875 6.10938 38.7031 11.4062\n",
        "Q43.2188 16.7031 43.2188 25.4844\n",
        "L43.2188 27.4844\n",
        "z\n",
        "\n",
        "M52.2031 31.2031\n",
        "L52.2031 0\n",
        "L43.2188 0\n",
        "L43.2188 8.29688\n",
        "Q40.1406 3.32812 35.5469 0.953125\n",
        "Q30.9531 -1.42188 24.3125 -1.42188\n",
        "Q15.9219 -1.42188 10.9531 3.29688\n",
        "Q6 8.01562 6 15.9219\n",
        "Q6 25.1406 12.1719 29.8281\n",
        "Q18.3594 34.5156 30.6094 34.5156\n",
        "L43.2188 34.5156\n",
        "L43.2188 35.4062\n",
        "Q43.2188 41.6094 39.1406 45\n",
        "Q35.0625 48.3906 27.6875 48.3906\n",
        "Q23 48.3906 18.5469 47.2656\n",
        "Q14.1094 46.1406 10.0156 43.8906\n",
        "L10.0156 52.2031\n",
        "Q14.9375 54.1094 19.5781 55.0469\n",
        "Q24.2188 56 28.6094 56\n",
        "Q40.4844 56 46.3438 49.8438\n",
        "Q52.2031 43.7031 52.2031 31.2031\" id=\"BitstreamVeraSans-Roman-61\"/>\n",
        "     <path d=\"\n",
        "M-0.296875 72.9062\n",
        "L61.375 72.9062\n",
        "L61.375 64.5938\n",
        "L35.5 64.5938\n",
        "L35.5 0\n",
        "L25.5938 0\n",
        "L25.5938 64.5938\n",
        "L-0.296875 64.5938\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-54\"/>\n",
        "     <path d=\"\n",
        "M54.8906 33.0156\n",
        "L54.8906 0\n",
        "L45.9062 0\n",
        "L45.9062 32.7188\n",
        "Q45.9062 40.4844 42.875 44.3281\n",
        "Q39.8438 48.1875 33.7969 48.1875\n",
        "Q26.5156 48.1875 22.3125 43.5469\n",
        "Q18.1094 38.9219 18.1094 30.9062\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 54.6875\n",
        "L18.1094 54.6875\n",
        "L18.1094 46.1875\n",
        "Q21.3438 51.125 25.7031 53.5625\n",
        "Q30.0781 56 35.7969 56\n",
        "Q45.2188 56 50.0469 50.1719\n",
        "Q54.8906 44.3438 54.8906 33.0156\" id=\"BitstreamVeraSans-Roman-6e\"/>\n",
        "    </defs>\n",
        "    <g transform=\"translate(105.73828125 81.7584375)scale(0.1 -0.1)\">\n",
        "     <use xlink:href=\"#BitstreamVeraSans-Roman-54\"/>\n",
        "     <use x=\"44.583984375\" xlink:href=\"#BitstreamVeraSans-Roman-61\"/>\n",
        "     <use x=\"105.86328125\" xlink:href=\"#BitstreamVeraSans-Roman-6e\"/>\n",
        "     <use x=\"169.2421875\" xlink:href=\"#BitstreamVeraSans-Roman-68\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_12\">\n",
        "    <!-- Softmax -->\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M54.8906 54.6875\n",
        "L35.1094 28.0781\n",
        "L55.9062 0\n",
        "L45.3125 0\n",
        "L29.3906 21.4844\n",
        "L13.4844 0\n",
        "L2.875 0\n",
        "L24.125 28.6094\n",
        "L4.6875 54.6875\n",
        "L15.2812 54.6875\n",
        "L29.7812 35.2031\n",
        "L44.2812 54.6875\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-78\"/>\n",
        "     <path d=\"\n",
        "M18.3125 70.2188\n",
        "L18.3125 54.6875\n",
        "L36.8125 54.6875\n",
        "L36.8125 47.7031\n",
        "L18.3125 47.7031\n",
        "L18.3125 18.0156\n",
        "Q18.3125 11.3281 20.1406 9.42188\n",
        "Q21.9688 7.51562 27.5938 7.51562\n",
        "L36.8125 7.51562\n",
        "L36.8125 0\n",
        "L27.5938 0\n",
        "Q17.1875 0 13.2344 3.875\n",
        "Q9.28125 7.76562 9.28125 18.0156\n",
        "L9.28125 47.7031\n",
        "L2.6875 47.7031\n",
        "L2.6875 54.6875\n",
        "L9.28125 54.6875\n",
        "L9.28125 70.2188\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-74\"/>\n",
        "     <path d=\"\n",
        "M37.1094 75.9844\n",
        "L37.1094 68.5\n",
        "L28.5156 68.5\n",
        "Q23.6875 68.5 21.7969 66.5469\n",
        "Q19.9219 64.5938 19.9219 59.5156\n",
        "L19.9219 54.6875\n",
        "L34.7188 54.6875\n",
        "L34.7188 47.7031\n",
        "L19.9219 47.7031\n",
        "L19.9219 0\n",
        "L10.8906 0\n",
        "L10.8906 47.7031\n",
        "L2.29688 47.7031\n",
        "L2.29688 54.6875\n",
        "L10.8906 54.6875\n",
        "L10.8906 58.5\n",
        "Q10.8906 67.625 15.1406 71.7969\n",
        "Q19.3906 75.9844 28.6094 75.9844\n",
        "z\n",
        "\" id=\"BitstreamVeraSans-Roman-66\"/>\n",
        "     <path d=\"\n",
        "M53.5156 70.5156\n",
        "L53.5156 60.8906\n",
        "Q47.9062 63.5781 42.9219 64.8906\n",
        "Q37.9375 66.2188 33.2969 66.2188\n",
        "Q25.25 66.2188 20.875 63.0938\n",
        "Q16.5 59.9688 16.5 54.2031\n",
        "Q16.5 49.3594 19.4062 46.8906\n",
        "Q22.3125 44.4375 30.4219 42.9219\n",
        "L36.375 41.7031\n",
        "Q47.4062 39.5938 52.6562 34.2969\n",
        "Q57.9062 29 57.9062 20.125\n",
        "Q57.9062 9.51562 50.7969 4.04688\n",
        "Q43.7031 -1.42188 29.9844 -1.42188\n",
        "Q24.8125 -1.42188 18.9688 -0.25\n",
        "Q13.1406 0.921875 6.89062 3.21875\n",
        "L6.89062 13.375\n",
        "Q12.8906 10.0156 18.6562 8.29688\n",
        "Q24.4219 6.59375 29.9844 6.59375\n",
        "Q38.4219 6.59375 43.0156 9.90625\n",
        "Q47.6094 13.2344 47.6094 19.3906\n",
        "Q47.6094 24.75 44.3125 27.7812\n",
        "Q41.0156 30.8125 33.5 32.3281\n",
        "L27.4844 33.5\n",
        "Q16.4531 35.6875 11.5156 40.375\n",
        "Q6.59375 45.0625 6.59375 53.4219\n",
        "Q6.59375 63.0938 13.4062 68.6562\n",
        "Q20.2188 74.2188 32.1719 74.2188\n",
        "Q37.3125 74.2188 42.625 73.2812\n",
        "Q47.9531 72.3594 53.5156 70.5156\" id=\"BitstreamVeraSans-Roman-53\"/>\n",
        "     <path d=\"\n",
        "M52 44.1875\n",
        "Q55.375 50.25 60.0625 53.125\n",
        "Q64.75 56 71.0938 56\n",
        "Q79.6406 56 84.2812 50.0156\n",
        "Q88.9219 44.0469 88.9219 33.0156\n",
        "L88.9219 0\n",
        "L79.8906 0\n",
        "L79.8906 32.7188\n",
        "Q79.8906 40.5781 77.0938 44.375\n",
        "Q74.3125 48.1875 68.6094 48.1875\n",
        "Q61.625 48.1875 57.5625 43.5469\n",
        "Q53.5156 38.9219 53.5156 30.9062\n",
        "L53.5156 0\n",
        "L44.4844 0\n",
        "L44.4844 32.7188\n",
        "Q44.4844 40.625 41.7031 44.4062\n",
        "Q38.9219 48.1875 33.1094 48.1875\n",
        "Q26.2188 48.1875 22.1562 43.5312\n",
        "Q18.1094 38.875 18.1094 30.9062\n",
        "L18.1094 0\n",
        "L9.07812 0\n",
        "L9.07812 54.6875\n",
        "L18.1094 54.6875\n",
        "L18.1094 46.1875\n",
        "Q21.1875 51.2188 25.4844 53.6094\n",
        "Q29.7812 56 35.6875 56\n",
        "Q41.6562 56 45.8281 52.9688\n",
        "Q50 49.9531 52 44.1875\" id=\"BitstreamVeraSans-Roman-6d\"/>\n",
        "     <path d=\"\n",
        "M30.6094 48.3906\n",
        "Q23.3906 48.3906 19.1875 42.75\n",
        "Q14.9844 37.1094 14.9844 27.2969\n",
        "Q14.9844 17.4844 19.1562 11.8438\n",
        "Q23.3438 6.20312 30.6094 6.20312\n",
        "Q37.7969 6.20312 41.9844 11.8594\n",
        "Q46.1875 17.5312 46.1875 27.2969\n",
        "Q46.1875 37.0156 41.9844 42.7031\n",
        "Q37.7969 48.3906 30.6094 48.3906\n",
        "M30.6094 56\n",
        "Q42.3281 56 49.0156 48.375\n",
        "Q55.7188 40.7656 55.7188 27.2969\n",
        "Q55.7188 13.875 49.0156 6.21875\n",
        "Q42.3281 -1.42188 30.6094 -1.42188\n",
        "Q18.8438 -1.42188 12.1719 6.21875\n",
        "Q5.51562 13.875 5.51562 27.2969\n",
        "Q5.51562 40.7656 12.1719 48.375\n",
        "Q18.8438 56 30.6094 56\" id=\"BitstreamVeraSans-Roman-6f\"/>\n",
        "    </defs>\n",
        "    <g transform=\"translate(282.69296875 14.7984375)scale(0.1 -0.1)\">\n",
        "     <use xlink:href=\"#BitstreamVeraSans-Roman-53\"/>\n",
        "     <use x=\"63.4765625\" xlink:href=\"#BitstreamVeraSans-Roman-6f\"/>\n",
        "     <use x=\"124.658203125\" xlink:href=\"#BitstreamVeraSans-Roman-66\"/>\n",
        "     <use x=\"158.11328125\" xlink:href=\"#BitstreamVeraSans-Roman-74\"/>\n",
        "     <use x=\"197.322265625\" xlink:href=\"#BitstreamVeraSans-Roman-6d\"/>\n",
        "     <use x=\"294.734375\" xlink:href=\"#BitstreamVeraSans-Roman-61\"/>\n",
        "     <use x=\"356.013671875\" xlink:href=\"#BitstreamVeraSans-Roman-78\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "   <g id=\"text_13\">\n",
        "    <!-- Output -->\n",
        "    <defs>\n",
        "     <path d=\"\n",
        "M8.5 21.5781\n",
        "L8.5 54.6875\n",
        "L17.4844 54.6875\n",
        "L17.4844 21.9219\n",
        "Q17.4844 14.1562 20.5 10.2656\n",
        "Q23.5312 6.39062 29.5938 6.39062\n",
        "Q36.8594 6.39062 41.0781 11.0312\n",
        "Q45.3125 15.6719 45.3125 23.6875\n",
        "L45.3125 54.6875\n",
        "L54.2969 54.6875\n",
        "L54.2969 0\n",
        "L45.3125 0\n",
        "L45.3125 8.40625\n",
        "Q42.0469 3.42188 37.7188 1\n",
        "Q33.4062 -1.42188 27.6875 -1.42188\n",
        "Q18.2656 -1.42188 13.375 4.4375\n",
        "Q8.5 10.2969 8.5 21.5781\" id=\"BitstreamVeraSans-Roman-75\"/>\n",
        "     <path d=\"\n",
        "M18.1094 8.20312\n",
        "L18.1094 -20.7969\n",
        "L9.07812 -20.7969\n",
        "L9.07812 54.6875\n",
        "L18.1094 54.6875\n",
        "L18.1094 46.3906\n",
        "Q20.9531 51.2656 25.2656 53.625\n",
        "Q29.5938 56 35.5938 56\n",
        "Q45.5625 56 51.7812 48.0938\n",
        "Q58.0156 40.1875 58.0156 27.2969\n",
        "Q58.0156 14.4062 51.7812 6.48438\n",
        "Q45.5625 -1.42188 35.5938 -1.42188\n",
        "Q29.5938 -1.42188 25.2656 0.953125\n",
        "Q20.9531 3.32812 18.1094 8.20312\n",
        "M48.6875 27.2969\n",
        "Q48.6875 37.2031 44.6094 42.8438\n",
        "Q40.5312 48.4844 33.4062 48.4844\n",
        "Q26.2656 48.4844 22.1875 42.8438\n",
        "Q18.1094 37.2031 18.1094 27.2969\n",
        "Q18.1094 17.3906 22.1875 11.75\n",
        "Q26.2656 6.10938 33.4062 6.10938\n",
        "Q40.5312 6.10938 44.6094 11.75\n",
        "Q48.6875 17.3906 48.6875 27.2969\" id=\"BitstreamVeraSans-Roman-70\"/>\n",
        "     <path d=\"\n",
        "M39.4062 66.2188\n",
        "Q28.6562 66.2188 22.3281 58.2031\n",
        "Q16.0156 50.2031 16.0156 36.375\n",
        "Q16.0156 22.6094 22.3281 14.5938\n",
        "Q28.6562 6.59375 39.4062 6.59375\n",
        "Q50.1406 6.59375 56.4219 14.5938\n",
        "Q62.7031 22.6094 62.7031 36.375\n",
        "Q62.7031 50.2031 56.4219 58.2031\n",
        "Q50.1406 66.2188 39.4062 66.2188\n",
        "M39.4062 74.2188\n",
        "Q54.7344 74.2188 63.9062 63.9375\n",
        "Q73.0938 53.6562 73.0938 36.375\n",
        "Q73.0938 19.1406 63.9062 8.85938\n",
        "Q54.7344 -1.42188 39.4062 -1.42188\n",
        "Q24.0312 -1.42188 14.8125 8.82812\n",
        "Q5.60938 19.0938 5.60938 36.375\n",
        "Q5.60938 53.6562 14.8125 63.9375\n",
        "Q24.0312 74.2188 39.4062 74.2188\" id=\"BitstreamVeraSans-Roman-4f\"/>\n",
        "    </defs>\n",
        "    <g transform=\"translate(471.99140625 115.2384375)scale(0.1 -0.1)\">\n",
        "     <use xlink:href=\"#BitstreamVeraSans-Roman-4f\"/>\n",
        "     <use x=\"78.7109375\" xlink:href=\"#BitstreamVeraSans-Roman-75\"/>\n",
        "     <use x=\"142.08984375\" xlink:href=\"#BitstreamVeraSans-Roman-74\"/>\n",
        "     <use x=\"181.298828125\" xlink:href=\"#BitstreamVeraSans-Roman-70\"/>\n",
        "     <use x=\"244.775390625\" xlink:href=\"#BitstreamVeraSans-Roman-75\"/>\n",
        "     <use x=\"308.154296875\" xlink:href=\"#BitstreamVeraSans-Roman-74\"/>\n",
        "    </g>\n",
        "   </g>\n",
        "  </g>\n",
        " </g>\n",
        " <defs>\n",
        "  <clipPath id=\"p4811f8316e\">\n",
        "   <rect height=\"334.8\" width=\"558.0\" x=\"23.959375\" y=\"34.8864375\"/>\n",
        "  </clipPath>\n",
        " </defs>\n",
        "</svg>\n"
       ],
       "text": [
        "<matplotlib.figure.Figure at 0x119138400>"
       ]
      }
     ],
     "prompt_number": 18
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## Future APIs issues and ideas:\n",
      "\n",
      "* Prevent parameter duplication by adding uuids to each, and using sets to identify them (at least initially)\n",
      "\n",
      "* Slice Layer, and add layer are clunky ways of achieving simple things. These should implicity act on the layer and connect it.\n",
      "\n",
      "* In doing so the network should also implicitly gobble up all the resulting layers into a coherent whole.\n",
      "\n",
      "* Optimization is then a matter of preventing the saving of the non transformed input of a linear layer, and converting all these classes either to Numba or Cython for compilation to avoid doing all sorts of polymorphic checks everywhere.\n",
      "\n",
      "## Future Steps:\n",
      "\n",
      "* Implement RNN with memory\n",
      "\n",
      "* Implement gate unit by overloading the `__add__` operator\n",
      "\n",
      "* Implement the loop layer in Cython with nogil where possible\n"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def topology_test():\n",
      "    # create a test dataset\n",
      "    xor_dataset, xor_labels = create_xor_dataset()\n",
      "    # create a small network:\n",
      "\n",
      "    net = Network(metric = BinaryCrossEntropy)\n",
      "    print(\"Initialization OK\")\n",
      "    first_layer       = LinearLayer(xor_dataset.shape[1], 6)\n",
      "    activation_layer  = ActivationLayer(LogisticNeuron)\n",
      "    \n",
      "    first_layer.connect_to(activation_layer)\n",
      "    \n",
      "    second_input = cython_lstm.network.DataLayer()\n",
      "    \n",
      "    second_layer = LinearLayer(3, 6)\n",
      "    second_input.connect_to(second_layer)\n",
      "    \n",
      "    third_layer = activation_layer + second_layer\n",
      "    \n",
      "    net.add_layer(first_layer, input=True)\n",
      "    net.add_layer(activation_layer)\n",
      "    net.add_layer(second_layer)\n",
      "    net.add_layer(second_input)\n",
      "    net.add_layer(third_layer, output=True)\n",
      "    return net\n",
      "    \n",
      "    "
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a = topology_test()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Initialization OK\n"
       ]
      }
     ],
     "prompt_number": 24
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "[b.layer for b in a.topsort()]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 25,
       "text": [
        "[<cython_lstm.network.DataLayer at 0x110fbed30>,\n",
        " <LinearLayer {'output_size': 6, 'activation': '', 'input_size': 3}>,\n",
        " <cython_lstm.network.DataLayer at 0x110f78a20>,\n",
        " <LinearLayer {'output_size': 6, 'activation': '', 'input_size': 2}>,\n",
        " <ActivationLayer {'output_size': '', 'activation': 'Sigmoid', 'input_size': ''}>,\n",
        " <ElementWiseSum {'output_size': '', 'activation': '', 'input_size': ''}>]"
       ]
      }
     ],
     "prompt_number": 25
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}